使用Visual Basic或C#创建Web Service
下面的内容描述了一个用以转换华氏温度为摄氏温度的Web Service创建过程,它使用Visual Basic或是C#。所有的受控代码均被编译为“中间语言”(MSIL:Microsoft intermediate language),然后由通用语言运行环境执行。
注 开发者使用C#或Visual Basic创建Web Service的过程几乎是一样的。在这里,每一段代码样本都将用C#和Visual Basic展示。
我们将完成以下工作:
豻ab创建一个Web Service将一个华氏标准温度转换成摄氏温度标准。
豻ab使用Web Service的描述页测试Web Service的功能。
要完成下面的步骤,必须提供:
豻ab一台满足创建Web工程需要的机器。
本文包括以下内容:
豻ab创建Web Service工程
豻ab实现Web Service
n 新增方法及编译Web Service
豻ab测试及部署Web Service
创建Web Service工程
可以通过使用Visual Studio提供的模板为Web Service启动一个工程及其必需的文件,可选择使用Visual Basic或是C#。
1、 到File菜单,定位到New,然后点击Project。
2、 在New Project对话框,选择Visual Basic Projects或Visual C# Projects文件夹之一。
3、 点击Web Service图标。
4、 将工程的名字改为TempConvert1。
5、 如果必要,输入一个你能用以开发Web Service的Web服务器地址。
注 此服务器称为你的开发服务器。在默认情况下,开发服务器和Visual Studio所在的机器是同一台机器。工程在开发服务器上开发及编译。
6、 点击OK创建此工程。
Visual Studio自动创建必要的文件和包含必要的References以支持Web Service。
实现Web Service
在这步,我们将编写为Web Service客户提供真实服务的代码。这些代码将置于Visual Studio为我们创建的Code Behind文件中,这些文件关联到Web Service 的.asmx文件。Code-Behind文件可以是.cs(C#)或是.vb(Visual Basic)其中之一,取决于创建Web Service时我们选择了哪种语言。
新增方法及编译Web Service
1、 在Solution Explorer中,展开References文件夹检查是否有一个Reference到System.Xml.Serialization。如果没有则加上它以便能够进行SOAP Section 5编码。
2、 在Solution Explorer中选择Service1.asmx (Visual Basic)或WebService1.asmx (C#)然后按F7来查看Code-behind文件。或者,在View菜单点击Code。
注 Code-Behind文件默认是隐藏的。在Solution Explorer工具条上点击“Show All Files”图标以显示隐藏的文件。或者,在Project菜单,点击Show All Files。
注 默认情况下,使用Visual Basic或C#实现的Web Service并没有利用可选的,在SOAP 1.1规格Section 5中所描述的SOAP编码格式。要创建一个利用Section 5 编码格式的受控代码Web Service,有必要增加SoapService属性到Web Service的类实现当中,并且指定一个RPC SoapService格式。详情参见Visual Studio.NET Beta 1 CD-ROM Disc 1根目录中的readme.htm文件。
3、 定位到Web Service样例(Hello World)代码并在它的位置输入符合你所选语言的代码:
' Visual Basic
Public Function <WebMethod()> ConvertTemperature(ByVal dFahrenheit As Double) As Double
ConvertTemperature = ((dFahrenheit - 32) * 5) / 9
End Function
// C#
[WebMethod]
public double ConvertTemperature(double dFahrenheit) {
return ((dFahrenheit - 32) * 5) / 9;
}
注 Web Services支持一个大多数编程语言都支持的数据类型子集。当创建Web Services的时候,确信你指定的参数和返回值类型是所支持的类型。
将WebMethod属性附加到方法上,指出它将作为Web Service的一部分Expose出去。另外,类和方法都必须标记为Public。
4、 在Solution Explorer里选择Service1.asmx(Visual Basic)或WebService1.asmx(C#)。
5、 到Project菜单,定位到Web Project,然后点击Set as Start Page。
6、 保存Solution。
7、 到Build菜单,点击Build。
测试及部署Web Service
当一个.asmx文件在浏览器打开时,一个默认的描述页就显示出来,它提供了关于Web Service的有关信息。此页中标签为SDL Contract的链接将带你到一个包含此Web Service的服务描述文档。
1、 在Solution Explorer里选择Service1.asmx (Visual Basic)或WebService1.asmx (C#)。
2、 到File菜单,点击View in Browser。
3、 在dFahrenheit文本框中,输入数字212然后点击Invoke按钮。
Web Service 将经由返回在一个XML文档中转换过的值响应,形如:
<?xml version="1.0"?>
<double xmlns="http://tempuri.org/">100</double>
4、 部署工程
要使你的Web Service对其他人有效,你需要将它部署到一个能和你想支持的用户连接的WEB服务器上。
关于部署,请参看其他资料。