WebServices基礎知識(MSDN整理)

Windows Communication Foundation (WCF) 是 Microsoft 建立分佈式系統的下一代平臺。作爲 .NET Framework 3.* 的一部分,它是設計用來鞏固並擴展以前版本 Framework 的 API(即,ASP.NET Web Services、.NET Remoting, Enterprise Services (COM+) 和消息排隊)。爲更好地學習這個新東東,特作以下記錄---回顧ASP.NET Web Services.
一:XML Web services 由兩部分組成:XML Web services 入口點和實現 XML Web services 功能的代碼。在 ASP.NET 中,.asmx 文件是用作 XML Web services 的可尋址入口點的文本文件。它引用預編譯的程序集中的代碼、代碼隱藏文件或包含於 .asmx 文件本身的代碼。
 三種方式事例:
 1.引用預編譯的程序集中的代碼: 

namespace Baosight.BPMS.DE.DP.BusinessLogic
{   
    
/// ...   
    public class DeviceListServiceFacade :WebService, IDeviceListServiceFacade
    
{
       [WebMethod]
        
public void UpdateDeviceChangeListHead(DeviceChangeListHead deviceChangeListHead)
        
{
           
///...
        }
  
 ... 
    }

}

.asmx文件內容如下:

<%@ WebService Language="C#" class="Baosight.BPMS.DE.DP.BusinessLogic.DeviceListServiceFacade" %>

 2.代碼隱藏文件:
   默認情況下,當使用 ASP.NET Web 服務項目模板創建 XML Web services 時,Visual Studio 使用代碼隱藏文件,例如在VS2005中,App_Code下將會出現:Service.cs。具體邏輯在此文件實現即可.
.asmx文件內容如下:

<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" %>

 3.包含於.asmx 文件本身:

<%@ WebService Language="C#" Class="CoreCommonWebService" %>
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 CoreCommonWebService  : System.Web.Services.WebService {

    [WebMethod]
    public bool IsAutoFlow(string userId, string workflowName, string taskId, string stepPolicy)
    {
        return Baosight.BPMS.Core.Adapter.WorkflowHelper.IsAutoFlow(userId, workflowName, taskId, stepPolicy);
    }
}

二:使用 WebService 屬性
   可以使用 WebService 屬性指定命名空間(默認爲“http://tempuri.org”)和 XML Web services 的說明文本。默認情況下,ASP.NET Web 服務項目模板不生成包含該屬性的類。用逗號分隔多個屬性。如下所示意

[System.Web.Services.WebService(Namespace="http://servername/xmlwebservices/"
   Description
="Some descriptive text could go here.")] 
public class Service1 : System.Web.Services.WebService

    
// Implementation code.
}

三:使用 WebMethod 屬性
  WebMethod 屬性 (Attribute) 提供以下屬性 (Property):

BufferResponse :啓用對 XML Web services 方法響應的緩衝。當設置爲 true(默認設置)時,ASP.NET 在將響應向下發送到客戶端之前對整個響應進行緩衝。緩衝非常有效,它通過最小化輔助進程和 IIS 進程之間的通信來幫助提高性能。當設置爲 false 時,ASP.NET 以 16KB 的塊區緩衝響應。通常,只有在不想將響應的全部內容一次緩衝到內存時,纔將該屬性 (Property) 設置爲 false,除非另外指定,默認值爲 true。

CacheDuration :啓用對 XML Web services 方法結果的緩存。ASP.NET 將緩存每個唯一參數集的結果。該屬性 (Property) 的值指定 ASP.NET 應該對結果進行多少秒的緩存處理。值爲零,則禁用對結果進行緩存。除非另外指定,默認值爲零。

Description :提供 XML Web services 方法的說明,該說明將顯示在服務幫助頁上。除非另外指定,默認值爲空字符串。

EnableSession :啓用 XML Web services 方法的會話狀態。一旦啓用,XML Web services 就可以從 HttpContext.Current.Session 中直接訪問會話狀態集合,或者,如果它是從 WebService 基類繼承的,則可以使用 WebService.Session 屬性來訪問會話狀態集合。除非另外指定,默認值爲 false。

MessageName :使 XML Web services 能夠唯一確定使用別名的重載方法。除非另外指定,默認值是方法名稱。當指定 MessageName 時,結果 SOAP 消息將反映該名稱,而不是實際的方法名稱。

TransactionOption :使 XML Web services 方法可以作爲事務的根對象參與。雖然可以將 TransactionOption 屬性 (Property) 設置爲 TransactionOption 枚舉的任意值,但 XML Web services 方法僅有兩個可能的行爲:它不參與事務(Disabled、NotSupported、Supported)或它創建一個新事務(Required、RequiresNew)。除非另外指定,默認值爲 TransactionOption.Disabled。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章