您好,登錄后才能下訂單哦!
怎么理解ASP.NET應用程序的WCF服務,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
ASP.NET應用程序添加WCF服務
現在,我們來學習如何在前面的ASP.NET網站中添加一個支持AJAX功能的WCF服務。為此,請右擊上面的示例網站AJAXWCFTest1并選擇“Add New Items…”,在隨后出現的“Add New Items”對話框中選擇“AJAX-Enabled WCF Service”模板添加一個新的WCF服務并命名為TimeService。
通過上面的操作后,你會發現Web網站中添加了一個服務端點(即timeservice.svc)以及與之相聯系的位于文件夾App_Code下的 Code-behind文件timeservice.cs。此外,還注意到,配置文件web.config也被修改以便為剛剛創建的WCF服務提供相應的注冊和發現信息。
現在創建的這個TimeService類中已經隱含地描述了所定義WCF服務的契約及其顯式實現。注意,其中的ServiceContract和OperationContract屬性承擔了與以前的WCF版本編程中同樣的角色。另外,為了簡化起見,在此沒有使用接口定義契約。
using System; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Activation; using System.ServiceModel.Web; [ServiceContract (Namespace = "Samples.Services")] [AspNetCompatibilityRequirements( RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)] public class TimeService ...{ [OperationContract] public DateTime GetTime() ...{ return DateTime.Now; } [OperationContract] public string GetTimeFormat(string format) ...{ return DateTime.Now.ToString(format); } }
注意到,上面的TimeService類共暴露了兩個公共端點,分別是GetTime和GetTimeFormat。
到達上面接口中方法的端點定義于一個SVC文件中。下面給出了文件timeservice.svc的內容:
<%@ ServiceHost Language="C#" Debug="true" Service="TimeService" CodeBehind="~/App_Code/TimeService.cs" %>
這個服務宿主(ServiceHost)指明了實現該服務使用的語言以及相應的源文件的位置,***通過Service屬性標識所使用的契約名字。
在正式開始測試這個服務前還有***一項工作就是在宿主ASP.NET應用程序的配置文件web.config中注冊上面這個WCF服務。下面展示了配置文件web.config中的相關配置節的內容:
<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="TimeServiceAspNetAjaxBehavior"> <enableWebScript /> </behavior> </endpointBehaviors> </behaviors> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> <services> <service name="TimeService"> <endpoint address="" behaviorConfiguration="TimeServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="TimeService" /> </service> </services> </system.serviceModel>
注意,上面的配置內容是隨著WCF服務的創建由系統自動生成的。
在此,首先針對前面WCF服務中的所有端點注冊一個行為列表。通過這種方式,為WCF服務TimeServiceAspNetAjaxBehavior定義了一個行為并且指出它使用客戶端腳本經由HTTP Web協議接受請求。從邏輯上分析,上面的enableWebScript元素與ASP.NET Web服務中用于修飾Web服務類的ScriptService屬性是一致的。
然后,需要枚舉宿主于當前ASP.NET應用程序中的所有WCF服務。注意,上面的web.config文件中僅展示了一個名字為TimeService的服務,它的一個端點使用了TimeService契約和webHttpBinding綁定模型。
關于怎么理解ASP.NET應用程序的WCF服務問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。