【发布时间】:2012-02-27 06:10:49
【问题描述】:
我对@987654323@ 和服务部署完全陌生。我在 IIS 6.0 上设置服务时遇到问题。
我需要在 IIS 6.0 上部署我的 WCF 服务的确切步骤。
注意:我创建了一个WCF 服务应用程序...
那么,在 IIS 6.0 上部署我的 wcf 服务需要遵循的具体步骤是什么?
【问题讨论】:
标签: wcf web-services iis
我对@987654323@ 和服务部署完全陌生。我在 IIS 6.0 上设置服务时遇到问题。
我需要在 IIS 6.0 上部署我的 WCF 服务的确切步骤。
注意:我创建了一个WCF 服务应用程序...
那么,在 IIS 6.0 上部署我的 wcf 服务需要遵循的具体步骤是什么?
【问题讨论】:
标签: wcf web-services iis
我相信你基本上有两种选择:
选项 1 - “bin”部署(首选选项)
.\bin 文件夹中*.svc 文件web.config 以定义您的端点和服务配置等。您的 WCF 服务现在可以通过网站的基地址以及 *.svc 文件的名称访问,例如
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 以定义您的端点和服务配置等。您的 WCF 服务现在可以通过网站的基地址访问,加上 *.svc 文件的名称,例如
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 或通用 SOAP 测试实用程序 SoapUI(免费版)等工具查看它的运行情况供您使用)。
【讨论】:
MyService 的内容-“相对”地址-然后您的服务将位于http://MyServer/VirtualDir/MyService.svc/MyService-但由于*.svc 文件无论如何都在那里,这些地址变得有点笨拙......