如何在IIS 6.0上部署我的WCF服务?

时间:2012-02-27 06:10:49

标签: wcf web-services iis

我对WCF和部署服务完全不熟悉。我在IIS 6.0上设置服务时遇到问题。

我需要在IIS 6.0上部署WCF服务的确切步骤。

注意:我创建了一个WCF服务应用程序......

那么,在IIS 6.0上部署我的wcf服务需要遵循的具体步骤是什么?

1 个答案:

答案 0 :(得分:12)

我基本上有两种选择,我相信:

选项1 - “bin”部署(首选选项)

  1. 将您的WCF服务编译为DLL(类库)
  2. 在IIS6中创建一个网站
  3. 将WCF DLL复制到网站的.\bin文件夹
  4. 在该网站中创建一个*.svc文件
  5. 在网站文件夹中添加适当的web.config以定义您的终端和服务配置等。
  6. 现在可以通过网站的基地址以及*.svc文件的名称访问您的WCF服务,例如

    http://myserver/someweb/Myservice.svc
    

    您的*.svc看起来像这样:

    <%@ ServiceHost Language="C#" Debug="true" 
        Service="WCF_Simple_Service.HelloIndigoService"  %>
    

    Service=属性表示实现服务的类 - 完全限定其命名空间。

    选项2 - 将内容放入App_Code

    1. 在IIS6中创建一个网站
    2. 将所有与WCF相关的*.cs文件直接放入.\App_Code文件夹
    3. 在该网站中创建一个*.svc文件
    4. 在网站文件夹中添加适当的web.config以定义您的终端和服务配置等。
    5. 现在可以通过网站的基地址以及*.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,您可以使用basicHttpBindingwsHttpBinding,这就是所有端点。 “mex”端点是可选的 - 但非常有用,尤其适用于开发和测试。它允许客户端“发现”服务并获取其服务描述,以便它可以与之交互。

      在IIS中部署服务后,您可以使用免费提供WCF的WCF Test Client工具或SoapUI这是一个通用的SOAP测试工具(有免费版供您使用)。