温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么理解ASP.NET应用程序的WCF服务

发布时间:2021-10-28 10:49:47 来源:亿速云 阅读:110 作者:柒染 栏目:编程语言

怎么理解ASP.NET应用程序的WCF服务,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

ASP.NET应用程序添加WCF服务

现在,我们来学习如何在前面的ASP.NET网站中添加一个支持AJAX功能的WCF服务。为此,请右击上面的示例网站AJAXWCFTest1并选择“Add New Items…”,在随后出现的“Add New Items”对话框中选择“AJAX-Enabled WCF Service”模板添加一个新的WCF服务并命名为TimeService。

怎么理解ASP.NET应用程序的WCF服务

通过上面的操作后,你会发现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服务问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI