1. 安装完 VS Extension 后,我们可以创建一个 WCF service 的网站项目。
2. 添加一个 WCF service 新项,系统自动会创建 Service.svc、App_Code/Service.cs 等必要文件。
3. 在 Service.cs 文件中完成服务编码。
4. 添加 web.config 文件,并在其位置单击鼠标右键,打开 "Microsoft Service Configuration Editor" 工具完成服务配置。
5. 注意添加 serviceMetadata,否则我们使用浏览器无法查看,也无法创建客户端代理。
web.config 演示 (注意配置文件中并没有提供服务地址)

<?
xml version="1.0"
?>

<
configuration
xmlns
="http://schemas.microsoft.com/.NetConfiguration/v2.0"
>

<
system.serviceModel
>

<
services
>

<
service
behaviorConfiguration
="MyServiceTypeBehaviors"
name
="MyService"
>

<
endpoint
binding
="wsHttpBinding"
contract
="IMyService"
/>

</
service
>

</
services
>

<
behaviors
>

<
serviceBehaviors
>

<
behavior
name
="MyServiceTypeBehaviors"
>

<
serviceMetadata
httpGetEnabled
="true"
/>

<
serviceDebug
includeExceptionDetailInFaults
="true"
/>

</
behavior
>

</
serviceBehaviors
>

</
behaviors
>

</
system.serviceModel
>

<
system.web
>

<
compilation
debug
="true"
>

</
system.web
>

</
configuration
>
service.svc

<
%@ ServiceHost
Language
="C#"
Debug
="true"
Service
="MyService"
CodeBehind
="~/App_Code/service.cs"
%
>
建议将服务放到一个单独的 Library 中,这样更改宿主环境会更方便一点,不过上述步骤要做些修改。
1. 安装完 VS Extension 后,我们可以创建一个 WCF service 的网站项目。
2. 添加服务所在类库的引用。
3. 创建 svc 文件,内容也所不同。如 <%@ ServiceHost Debug="true" Service="Learn.Library.WCF.CalculateService" %>,注意使用包含名字空间的全名。
4. 添加 web.config 文件,打开 "Microsoft Service Configuration Editor" 工具完成服务配置。
5. 注意添加 serviceMetadata,否则我们使用浏览器无法查看,也无法创建客户端代理。
web.config

<?
xml version="1.0"
?>

<
configuration
xmlns
="http://schemas.microsoft.com/.NetConfiguration/v2.0"
>

<
system.serviceModel
>

<
services
>

<
service
behaviorConfiguration
="MyServiceTypeBehaviors"
name
="Learn.Library.WCF.CalculateService"
>

<
endpoint
binding
="wsHttpBinding"
contract
="Learn.Library.WCF.ICalculate"
/>

</
service
>

</
services
>

<
behaviors
>

<
serviceBehaviors
>

<
behavior
name
="MyServiceTypeBehaviors"
>

<
serviceMetadata
httpGetEnabled
="true"
/>

<
serviceDebug
includeExceptionDetailInFaults
="true"
/>

</
behavior
>

</
serviceBehaviors
>

</
behaviors
>

</
system.serviceModel
>

<
system.web
>

<
compilation
debug
="true"
>

</
system.web
>

</
configuration
>