我相信你基本上有两个选择:
选项 1 - “bin”部署(首选选项)
- 将 WCF 服务编译为 DLL(类库)
- 在IIS6中创建一个网站
- 将 WCF DLL 复制到网站的
.\bin
folder
- 创建一个
*.svc
该网站中的文件
- 添加适当的
web.config
在网站文件夹中定义您的端点和服务配置等。
您的 WCF 服务现在可以通过网站的基地址以及该网站的名称进行访问*.svc
文件,例如
http://myserver/someweb/Myservice.svc
Your *.svc
看起来像这样:
<%@ ServiceHost Language="C#" Debug="true"
Service="WCF_Simple_Service.HelloIndigoService" %>
The Service=
属性表示实现服务的类 - 完全符合其名称空间。
选项 2 - 将东西放入App_Code
- 在IIS6中创建一个网站
- 把你所有的WCF相关的
*.cs
文件直接存入.\App_Code
folder
- 创建一个
*.svc
该网站中的文件
- 添加适当的
web.config
在网站文件夹中定义您的端点和服务配置等。
您的 WCF 服务现在可以通过网站的基地址以及该网站的名称进行访问*.svc
文件,例如
http://myserver/someweb/Myservice.svc
Your *.svc
看起来像这样:
<%@ ServiceHost Language="C#" Debug="true"
Service="Service"
CodeBehind="~/App_Code/Service.cs" %>
一个简单的示例web.config
可能看起来像这样:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="WithDebug">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="SimpleWCF.HelloIndigoService" behaviorConfiguration="true">
<endpoint
address=""
binding="basicHttpBinding"
contract="SimpleWCF.IHelloIndigoService" />
<endpoint
address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
</system.serviceModel>
你基本上定义了你的<service>
标签 - 再次:name=
表示实现服务的类 - 完全符合其名称空间。它必须包含至少一个端点 - 由于 IIS6 仅支持 HTTP,因此您可以使用basicHttpBinding
or wsHttpBinding
这就是全部了。 “mex”端点是可选的 - 但非常有用,特别是对于开发和测试。它允许客户端“发现”服务并获取其服务描述,以便与其交互。
一旦您的服务部署在 IIS 中,您就可以使用诸如WCF 测试客户端 http://msdn.microsoft.com/en-us/library/bb552364.aspx随 WCF 免费发货,或者SoapUI http://www.soapui.org这是一个通用的 SOAP 测试实用程序(有免费版本供您使用)。