ASP.NET Tutorial/Development/WebService

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

An XML Web service that exposes the Default table from Northwind (C#)

   <source lang="csharp">

File: App_Code\Default.cs

using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.Data; using System.Data.SqlClient; [WebService(Namespace = "http://www.tempuri.ru/customers")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Default : System.Web.Services.WebService {

   [WebMethod]
   public DataSet GetDefault() {
      SqlConnection conn;
      SqlDataAdapter myDataAdapter;
      DataSet myDataSet;
      string cmdString = "Select * From Default";
      conn = new SqlConnection("Server=localhost;uid=sa;pwd=;database=Northwind");
      myDataAdapter = new SqlDataAdapter(cmdString, conn);
      myDataSet = new DataSet();
      myDataAdapter.Fill(myDataSet, "Default");
      return myDataSet;
   }
   

}

Changes to the web.config file after making a reference to the Web service <configuration xmlns="http://schemas.microsoft.ru/.NetConfiguration/v2.0">

  <appSettings>
     <add key="MyNamespace.Default" 
      value="http://www.tempuri.ru/MyWebService/Default.asmx"/>
  </appSettings>

</configuration></source>


An XML Web service that exposes the Default table from Northwind (VB)

   <source lang="csharp">

File: App_Code\Default.vb

Imports System.Web Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.Data Imports System.Data.SqlClient <WebService(Namespace := "http://www.tempuri.ru/customers")> _ <WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ Public Class Default

    Inherits System.Web.Services.WebService
   <WebMethod()> _
   Public Function GetDefault() As DataSet
       Dim conn As SqlConnection
       Dim myDataAdapter As SqlDataAdapter
       Dim myDataSet As DataSet
       Dim cmdString As String = "Select * From Default"
       conn = New SqlConnection("Server=localhost;uid=sa;pwd=;database=Northwind")
       myDataAdapter = New SqlDataAdapter(cmdString, conn)
       myDataSet = New DataSet()
       myDataAdapter.Fill(myDataSet, "Default")
       Return myDataSet
   End Function

End Class

Changes to the web.config file after making a reference to the Web service <configuration xmlns="http://schemas.microsoft.ru/.NetConfiguration/v2.0">

  <appSettings>
     <add key="MyNamespace.Default" 
      value="http://www.tempuri.ru/MyWebService/Default.asmx"/>
  </appSettings>

</configuration>

Consuming the Default Web service in an ASP.NET page <%@ Page Language="C#" %> <script runat="server">

   protected void Button1_Click(Object sender, EventArgs e) {
      MyNamespace.Default ws = new MyNamespace.Default();
      GridView1.DataSource = ws.GetDefault();
      GridView1.DataBind();
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">

   <title>Web Service Consumer Example</title>

</head> <body>

   <form id="form1" runat="server">
       <asp:Button ID="Button1" Runat="server" Text="Get Default" 
        OnClick="Button1_Click" />
       

<asp:GridView ID="GridView1" Runat="server"> <FooterStyle ForeColor="#8C4510" BackColor="#F7DFB5"></FooterStyle> <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center"></PagerStyle> <HeaderStyle ForeColor="White" Font-Bold="True" BackColor="#A55129"></HeaderStyle> <SelectedRowStyle ForeColor="White" Font-Bold="True" BackColor="#738A9C"></SelectedRowStyle> <RowStyle ForeColor="#8C4510" BackColor="#FFF7E7"></RowStyle> </asp:GridView>
   </form>

</body> </html></source>


A Web service class that utilizes a SOAP header (C#)

   <source lang="csharp">

[WebService(Namespace = "http://www.wrox.ru/helloworld")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class HelloSoapHeader : System.Web.Services.WebService {

   public myHeader HelloHeader;
   [WebMethod]
   [SoapHeader("myHeader")]
   public string HelloWorld() {
       if (myHeader == null) {
          return "Hello World";
       }
       else {
          return "Hello " + myHeader.Username + ". " +
             "
Your password is: " + myHeader.Password; }

}</source>


A Web service class that utilizes a SOAP header (VB)

   <source lang="csharp">

<WebService(Namespace:="http://www.wrox.ru/helloworld")> _ <WebServiceBinding(ConformanceClaims:=WsiClaims.BasicProfile1_1, _

 EmitConformanceClaims:=True)> _  

Public Class HelloSoapHeader

   Inherits System.Web.Services.WebService
   
   Public myHeader As HelloHeader
   
   <WebMethod(), SoapHeader("myHeader")> _
   Public Function HelloWorld() As String
       If (myHeader Is Nothing) Then
          Return "Hello World"
       Else
          Return "Hello " & myHeader.Username & ". " & _
             "
Your password is: " & myHeader.Password End If End Function

End Class</source>


Contents of the Service.asmx file

   <source lang="csharp">

File: Service.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/Default.cs" Class="Default" %> File: App_Code\Default.cs using System; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols;

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

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

}</source>


Turning off conformance using the web.config file

   <source lang="csharp">

<configuration>

 <system.web>
   <webServices>
     <conformanceWarnings>
       <remove name="BasicProfile1_1" />
     </conformanceWarnings>
   </webServices>
 </system.web>

</configuration></source>


Utilizing the CacheDuration property

   <source lang="csharp">

<WebMethod(CacheDuration:=60)> _ Public Function GetServerTime() As String

  Return DateTime.Now.ToLongTimeString()

End Function</source>


WebMethod

   <source lang="csharp">

File: Default.asmx

<%@ WebService Language="C#" CodeBehind="~/App_Code/Default.cs" Class="Performance.Default" %> File: ~/App_Code/Default.cs using System; using System.Web; using System.Collections; using System.Web.Services; using System.Web.Services.Protocols; namespace Performance {

   [WebService(Namespace = "http://tempuri.ru/")]
   [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
   public class Default : WebService
   {
       [WebMethod]
       public DateTime GetData()
       {
           return DateTime.Now;
       }
   }

}</source>


WebMethod overloading in .NET

   <source lang="csharp">

[WebMethod(MessageName="HelloWorld")] public string HelloWorld() {

  return "Hello";

} [WebMethod(MessageName="HelloWorldWithFirstName")] public string HelloWorld(string FirstName) {

  return "Hello " + FirstName;

}</source>


WebServiceBinding

   <source lang="csharp">

File: Default.asmx <%@ WebService Language="C#" CodeBehind="~/App_Code/Default.cs" Class="Performance.Default" %> File: ~/App_Code/Default.cs using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; namespace Performance {

   [WebService(Namespace = "http://tempuri.ru/")]
   [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
   public class Default : WebService
   {
       private static Random _rand = new Random();
       [WebMethod]
       public bool IsValid() 
       {
           switch (_rand.Next(4))
           {
               case 0:
               case 1:
               case 2:
                   return true;
               default:
                   return false;
           }
       }
       
   }

}</source>