此示例演示如何在不需要 .svc 文件的情况下激活 Windows Communication Foundation (WCF) 服务。
![]() |
---|
您的计算机上可能已安装这些示例。在继续操作之前,请先检查以下(默认)目录:
<安装驱动器>:\WF_WCF_Samples
如果此目录不存在,请访问针对 .NET Framework 4 的 Windows Communication Foundation (WCF) 和 Windows Workflow Foundation (WF) 示例(可能为英文网页),下载所有 Windows Communication Foundation (WCF) 和 WF 示例。此示例位于以下目录。
<安装驱动器>:\WF_WCF_Samples\WCF\Basic\Services\Hosting\ConfigBasedActivation
|
示例详细信息
在此示例中,客户端是 WCF 测试客户端,并且服务承载在 IIS 中。
![]() |
---|
本主题的最后提供了此示例的设置和生成说明。 |
在不需要 .svc 文件的情况下激活服务
在 .NET Framework 3.5 中,激活服务需要一个 .svc 文件。这会导致额外的管理开销,因为需要与该应用程序一起部署和维护一个附加文件。.NET Framework 版本 4 发布后,可使用应用程序配置文件来配置激活组件。
.NET Framework 4 在应用程序配置文件的 ServiceHostingEnvironmentSection 中引入了一个新的配置元素 (ServiceActivationElement)。ServiceHostingEnvironmentSection 集合接受要激活的服务集合,如下面的代码示例所示。
<serviceActivations>
<add relativeAddress="Calculator.svc" service="Microsoft.ServiceModel.Samples.CalculatorService" />
<serviceActivations>
观察发现,该配置看上去非常类似于 .svc 文件的配置。引入的一个附加特性是 relativeAddress
,它可以提供服务的地址。相对地址也是该服务的虚拟路径。主机从 virtualPath
位置检索该文件的 Web.config 文件(如果存在),否则主机以递归方式搜索其父文件夹。
![]() |
---|
此示例需要在 IIS 中承载才能正常工作。 |
使用此示例
使用 Visual Studio 2010 打开 Service.csproj 文件。
若要生成解决方案,请按 F6。
通过运行 WCFTestClient.exe 测试该服务。
使用 Windows 资源管理器,导航到 %SystemDrive%\Program Files\Microsoft Visual Studio 10.0\Common7\IDE 文件夹。
运行 WcfTestClient.exe。
设置该服务的 MEX 地址。
按 Ctrl+Shift+A 设置服务地址。
将地址设置为 https://localhost/ServiceModelSamples/Calculator.svc。
执行
Add
操作。将n1
参数上的值设置为 10,并将n2
参数上的值设置为 15。按**“调用”**。
预期结果为 25。
设置、生成和运行示例
若要生成 C# 或 Visual Basic .NET 版本的解决方案,请按照生成 Windows Communication Foundation 示例中的说明进行操作。
生成解决方案后,运行 Setup.bat 以在 IIS 中设置 ServiceModelSamples 应用程序。现在,ServiceModelSamples 目录应显示为 IIS 应用程序。
若要用单机配置或跨计算机配置来运行示例,请按照Running the Windows Communication Foundation Samples中的说明进行操作。