如何:创建 ASP.NET Web 窗体客户端

本主题专门介绍一项旧有技术。现在应通过使用以下链接来创建 XML Web 服务和 XML Web 服务客户端: Windows Communication Foundation.

Code Example

充当 Web 服务客户端的 ASP.NET Web 窗体与其他 Web 服务客户端不同,区别在于代理类的引用和部署方式。特别需要指出的是,程序集中的公共类(部署到包含 Web 窗体的 Web 应用程序下的 \Bin 目录中)可从 ASP.NET Web 窗体中创建。因此,如果创建 Web 服务客户端代理类,请将其编译到程序集中,并将其放置在 \Bin 目录下,这样 ASP.NET Web 窗体就可以创建该代理类的实例了。

创建 Web 服务的 Web 窗体客户端

  1. 创建 Web 服务的代理。

    Wsdl https://www.contoso.com/Counter.asmx?WSDL
    
    Wsdl /language:VB https://www.contoso.com/Counter.asmx?WSDL
    

    有关更多信息,请参见创建 XML Web services 代理

将 Web 服务代理编译到一个程序集中,包括 System.Xml.dll 和 System.Web.Services.dll 程序集以及在步骤 1 中创建的代理。

csc /out:Counter.dll /t:library /r:System.XML.dll /r:System.Web.Services.dll Counter.cs
vbc /out:Counter.dll /t:library /r:System.XML.dll,System.Web.Services.dll Counter.vb
  1. 创建 Web 窗体。

    有关创建 Web 窗体的更多信息,请参见 ASP.NET Web Forms Pages

  2. 在客户端代码中创建 Web 窗体内的代理类的实例。

    Counter myCounter = new Counter();
    
    Dim myCounter As New Counter()
    
  3. 调用与 Web 服务方法进行通信的代理类的方法。

    UsageCount = myCounter.ServiceUsage();
    
    UsageCount = myCounter.ServiceUsage()
    
  4. 部署 Web 窗体。将 Web 服务代理程序集部署到 Web 应用程序下的 \bin 目录中(Web 窗体也部署在该目录中)。

    有关部署 Web 窗体的更多信息,请参见Deploying .NET Framework Applications

示例

 <%@ Page Language="C#" %>
<asp:Label id="Label1" runat="server" />
<script runat=server language=c#>

 void Page_Load(Object o, EventArgs e){

  int UsageCount;
  // Create an instance of the Web service class.
  Counter myCounter = new Counter();
  // Call the Web service method ServiceUsage.
  UsageCount = myCounter.ServiceUsage();

  Label1.BackColor = System.Drawing.Color.DarkSlateBlue;
  Label1.ForeColor = System.Drawing.Color.Gold;
  Label1.BorderStyle = System.Web.UI.WebControls.BorderStyle.Inset;

  // Display the results in a Label Web Form server control.
  if (UsageCount == 1)
       Label1.Text ="Web service has been utilized >" + UsageCount.ToString() + "< time.";
  else   
       Label1.Text= "Web service has been utilized >" + UsageCount.ToString() + "< times.";
}
</script>
<%@ Page Language="VB" %>
<asp:Label id="Label1" runat="server" />
<script runat=server language="VB">

Sub Page_Load(o As Object, e As EventArgs)
    Dim UsageCount As Integer
    ' Create an instance of the Web service class.
    Dim myCounter As New Counter()
    ' Call the Web service method ServiceUsage.
    UsageCount = myCounter.ServiceUsage()
    
    Label1.BackColor = System.Drawing.Color.DarkSlateBlue
    Label1.ForeColor = System.Drawing.Color.Gold
    Label1.BorderStyle = System.Web.UI.WebControls.BorderStyle.Inset
    
    ' Display the results in a Label Web Form server control.
    If UsageCount = 1 Then
        Label1.Text = "Web service has been utilized >" & UsageCount.ToString() & "< time."
    Else
        Label1.Text = "Web service has been utilized >" & UsageCount.ToString() & "< times."
    End If
End Sub
</script>

另请参见

概念

生成 XML Web services 客户端

其他资源

创建 XML Web services 客户端