如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API

摘要:
此时,工作已经完成。您可以通过访问http://domain名称/webservice/Service.asmx。

一、创建和发布Web Service
        Web服务方法中可以返回一个DataSet对象
        WEB服务可以说是下一代WEB应用程序的基础,无论客户端是WINDOWS应用、ASP.NET Web Form程序、甚至其他语言的客户端,都可以与同一个WEB服务通信,其平台和语言无关性使其有了广阔的发展空间。

利用VS2005和IIS我们可以很容易地发布一个WEB SERVICE,因为其中有几个细节需要注意,所在初学者常常在这里出现问题,现通过一个简单的例子说明如何创建和发布一个WEB SERVICE。

环境:Windows Server 2003,.Net FrameWork 2.0,IIS6.0

工具:VS2005

1.首先VS2005中新建一个WEB服务项目。

打开“文件”-“新建”-“网站”,在对话框中选择“ASP.NET Web服务”,VS2005会自动生成一个Service.cs文件,包含如下代码:

using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class Service : System.Web.Services.WebService
{
    public Service () {

        //如果使用设计的组件,请取消注释以下行 
        //InitializeComponent(); 
     }

     [WebMethod]
    public string HelloWorld() {
        return "Hello World";
     }
    
}

你可以在这里修改自己的命名空间,加入自己的方法,但本文只是为了说明如何创建和发布,所以对Service.cs不做任何更改。

2.生成网站

很简单,“生成”-“生成网站”或直接Shift+F6

3.发布网站

也是简单,“生成”-“发布网站”,这里会弹出一个对话框,什么也不需要修改,记下发布的目录。比如:D:/我的文档/Visual Studio 2005/Projects/WebSite1/PrecompiledWeb/WebSite1,我们需要目录下的文件。

4.配置IIS

在你的WEB目录下一个文件夹,比如webservice,并将第3步发布目录中的所有文件和目录拷贝到这个目录中,打开IIS,找到你的站点,在这个webservice目录上点右键,选择属性,在弹出对话框的“目录”选择项卡中点击“创建”按钮,然后确定即可。

到这时,已经大功告成,你可以通过访问http://域名/webservice/Service.asmx来验证。页面会出现如下图所示内容:

如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API第1张

注意:除了需要在IIS中对服务目录创建程序外,还要注意防火墙或杀毒软件的设置,我在首次访问service.asmx文件时,杀毒软件报告w3wp.exe在系统文件夹中生成asp_code.dll等,应该允许其他创建,否则会无法访问。

通过这样简单的方法,你可以轻松建立自己的WEB服务,在同一站点还可以有多个WEB服务。

二、c#的winform中调用Web Service API(VB6.0也可以调用该web服务) 
         现在以C# WinForm为例谈谈如何使用它 ,在服务中我们只有一个自动生成的方法:HelloWord(),其实现如下:
[WebMethod]

public string HelloWorld(){

return "Hello World";

}

在WINFORM中我们将添加一个按钮,添加单击事件,在事件处理函数中弹出一个对话框显示HelloWord的结果。

1.添加WEB引用

在VS2005中新建一个Windows应用程序项目,取名testwebservice,在项目中添加一个WEB引用,可在“解决方案资源管理器”的项目名上点右键添加,在弹出对话框中的URL输入框中输入WEB服务器的路径:如http://你的域名/web服务务路径/service.asmx,点击“前行”按钮后会搜索这个服务,并在右边报告找到的服务,并在左边显示service.asmx页面,我们在WEB引用名输入框中输入一个名字,这个将做为程序中WEB服务的命名空间名,这里我们取名mywebservice。

2.添加按钮单击事件

在Form中拖出一个Button按钮,双击单击事件处理方法,代码如下:

        private void button1_Click(object sender, EventArgs e)
         {
             mywebservice.Service ws = new testwebservice.mywebservice.Service();
             MessageBox.Show (ws.HelloWorld());
         }

其中mywebservice.Service ws = new testwebservice.mywebservice.Service()是实例化一个WEB服务对象,ws.HelloWorld()是调用WEB服务中的这个HelloWorld方法,其返回字符串将用MessageBox.Show()函数显示出来。

好了,最简单的一个调用WEB服务API的WinForm例子已经完成了,编译运行,单击按钮,将会弹出对话框显示“Hello World”信息。

重要的一点,在.net的WEB服务API中,除了一般的数据类型外,还可以返回结构和DataSet对象,有了这一点,就可以构建我们大多数的数据库应用了。

好了,接下来的工作就是在WEB服务中添加你的API完成你的工作了。

免责声明:文章转载自《如何创建、发布Web Service和 C#WINFORM里如何调用WEB Service API》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇[转]Altium Designer之多图纸设计java web开发小记(6)将int类型的list插入到mysql数据库下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#--Winform--图标控件Chart详解

以下是学习笔记: 学习内容:https://www.bilibili.com/video/BV1rp4y1s76g?p=2   一,图表的基本介绍: 1,下图说明了构成图表的关键要素  2,图表元素描述: 3,图标的坐标系 【1】计算机屏幕坐标系  【2】Chart控件的坐标系  【3】图标图片和图表区域  4,图表的文本元素   二,图表的应...

C# winform 获取标题栏,状态栏,菜单栏的高度

MessageBox.Show("当前窗体标题栏高度"+(this.Height - this.ClientRectangle.Height).ToString());//获得当前窗体标题栏高度 ClientRectangle//获取表示控件的工作区的矩形 MessageBox.Show(SystemInformation.PrimaryMo...

winform DataGridView控件的打印

借用网上的代码,应该是完整的打印过程了。有打印,预览,设置三个按钮 代码: public partial class Example : Form { //打印文檔 PrintDocument pdDocument = new PrintDocument(); //打印格式設置頁面 PageSetupDialog dlgPageSetup = new Pa...

扩展WinForm的ComboBox

个人认为winform的combobox不是那么的好用,所以自己扩展了一下。重新定义Items属性,并且支持树结构。为每项加入了CheckBox状态。丰富的列表项类ListItem。效果如图:代码清单: {[Designer(typeof(ControlDesigner))]publicclassComboBox:System.Windows.Forms....

Winform 动态 画图 不闪

一、问题:解决winform动态画图闪的问题,网上搜的方法,大部分都是: “this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true);”,甚至直接“this.DoubleBuffered = true;”。 先 new 个Bi...

Winform应用的多语言设置

VS 提供了一种简单的方式来为应用设置多种语言——resx文件。下面演示具体的操作步骤。 1.首先新建 Winform 项目,向其添加控件,并命名 2.将 Form1 的 Localizable 属性设为 true, 设置该属性后,.net 将根据不同的语言,为应用程序生成不同的资源文件(resx文件) 3.将 Form1 的 Language 属性修改为...