我对WCF
和部署服务完全不熟悉。我在IIS 6.0上设置服务时遇到问题。
我需要在IIS 6.0上部署WCF
服务的确切步骤。
注意:我创建了一个WCF
服务应用程序......
那么,在IIS 6.0上部署我的wcf服务需要遵循的具体步骤是什么?
答案 0 :(得分:12)
我基本上有两种选择,我相信:
选项1 - “bin”部署(首选选项)
.\bin
文件夹*.svc
文件web.config
以定义您的终端和服务配置等。现在可以通过网站的基地址以及*.svc
文件的名称访问您的WCF服务,例如
http://myserver/someweb/Myservice.svc
您的*.svc
看起来像这样:
<%@ ServiceHost Language="C#" Debug="true"
Service="WCF_Simple_Service.HelloIndigoService" %>
Service=
属性表示实现服务的类 - 完全限定其命名空间。
选项2 - 将内容放入App_Code
*.cs
文件直接放入.\App_Code
文件夹*.svc
文件web.config
以定义您的终端和服务配置等。现在可以通过网站的基地址以及*.svc
文件的名称访问您的WCF服务,例如
http://myserver/someweb/Myservice.svc
您的*.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
或wsHttpBinding
,这就是所有端点。 “mex”端点是可选的 - 但非常有用,尤其适用于开发和测试。它允许客户端“发现”服务并获取其服务描述,以便它可以与之交互。
在IIS中部署服务后,您可以使用免费提供WCF的WCF Test Client工具或SoapUI这是一个通用的SOAP测试工具(有免费版供您使用)。