我正在将我的 asmx Web 服务转换为 WCF。这是否固有地意味着文件类型需要从 .asmx 更改为 .svc?
问问题
6054 次
1 回答
10
每个 WCF 服务都需要有一个宿主进程:Windows 服务、IIS 或任何其他 .NET 程序。该主机将创建 System.ServiceModel.ServiceHost(或任何自定义 System.ServiceModel.ServiceHostBase)的实例,并将管理服务配置、行为、通道。
但是,当服务托管在 IIS 中时,它的行为会有所不同。默认情况下,我们需要创建一个扩展名为 .svc 的物理文件。这是一个纯粹的 IIS 要求。IIS 中有一个处理 .svc 文件类型的模块。该文件只是服务类型和可选服务主机工厂类型的声明。
<%@ ServiceHost Language="C#" Debug="true" Factory="System.ServiceModel.Activation.ServiceHostFactory" Service="MyFamousCalculatorService" CodeBehind="MyFamousCalculatorService.svc.cs" %>
从 WCF 4.0 开始,我们可以在没有物理 .svc 文件的情况下在 IIS 中创建和部署服务。这可以使用配置部分serviceActivations
中的配置来完成system.serviceModel
。
<configuration>
<system.serviceModel>
<serviceHostingEnvironment>
<serviceActivations>
<add relativeAddress="MyFamousCalculatorService.svc" service="MyFamousCalculatorService"/>
</serviceActivations>
</serviceHostingEnvironment>
</system.serviceModel>
</configuration>
于 2013-06-28T12:01:29.377 回答