📜  WCF-WAS托管(1)

📅  最后修改于: 2023-12-03 15:35:39.794000             🧑  作者: Mango

WCF-WAS托管

WCF-WAS托管是一种让基于Windows Communication Foundation (WCF)的应用程序能够在Windows Process Activation Service (WAS)的帮助下部署和管理的机制。

WAS是什么?

WAS是在Windows Server 2008中引入的一项服务,它是Internet Information Services (IIS) 7.0的核心组件之一。WAS为IIS提供了一个进程守护和管理程序池的机制,还支持基于HTTP、TCP或消息队列的WCF服务托管。

WCF-WAS托管的特点

WCF-WAS托管具有以下特点:

  • 可以在单个应用程序域中宿主多个WCF服务。
  • 在IIS中托管WCF服务时,不再需要HttpModule或HttpHandler配置。
  • 支持自动激活和无人工干预的WCF服务实例销毁。
  • 支持有状态和无状态的WCF服务。
  • 能够在远程IIS服务器上运行WCF服务,并通过调用基于HTTP、TCP或MSMQ的远程终结点访问这些服务。
如何使用WCF-WAS托管?

使用WCF-WAS托管,需要按照以下步骤进行操作:

  1. 确保Web服务批处理程序已安装并已启动。

  2. 在IIS 7.0中创建Web网站或应用程序。

  3. 使用WCF服务项目向Web网站或应用程序添加新项,并选择“WCF参考”>“WCF服务”。

  4. 在“添加新项 - WCF服务”对话框中,选择“HTTP”、“TCP”或“MSMQ”协议,并指定相关参数。

  5. 点击“确定”按钮,Visual Studio将自动生成一个新的WCF服务项目,并将其添加到Web网站或应用程序中。

  6. 将其编译,并在IIS中部署和注册WCF服务。

示例代码
<system.serviceModel>
  <services>
    <service name="MyCompany.MyService" behaviorConfiguration="...">
      <endpoint address="" binding="WSHttpBinding" contract="MyCompany.IMyService"/>
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      <host>
        <baseAddresses>
          <add baseAddress="http://localhost/MyService"/>
        </baseAddresses>
      </host>
    </service>
  </services>
</system.serviceModel>

在这个示例中,我们定义了一个名为"MyCompany.MyService"的WCF服务,该服务使用WSHttpBinding协议,托管在"http://localhost/MyService"的基本地址上。

更多WCF-WAS托管的使用细节和示例请参考官方文档。