1

我有一个作为 Windows 服务运行的 wcf 自托管服务,为本地网络中的多个 win/web 客户端提供服务。服务本身有多个合同(tcp 和命名管道),其中一个应通过 IIS(任何形式的 http 绑定)提供,以便可以从外部访问它,例如只需访问 www.mypublicdomain.com/public-contract。服务端

当前拓扑:

  • 服务器应用程序 - wcf windows 服务
  • 客户端 app1 - win forms app - 通过 tcp/ip 联系服务器应用
  • 客户端 app2 - mvc Web 应用程序(通过公共域在内部和通过 Internet 都可用) - 通过命名管道联系服务器应用程序(同一台机器)
    • 此应用程序托管在 iis7 上,新的公共 wcf 合同应作为其中的一部分公开。
  • 共享程序集 - 包含接口(服务合同)

问题是 - 通过 IIS 公开 windows 服务上的合同之一的最佳方式是什么,因此对该公开可用服务的所有请求都将直接路由到后端 windows 服务。

我对stackoverflow的第一个问题,如果有不清楚的地方,我会尝试进一步解释。谢谢你。

4

1 回答 1

1

如果您使用的是 IIS 7,那么您可以在 IIS 中托管 wcf 服务,并使用 HTTP 绑定公开一个服务合同,并将另一个非公共服务合同公开为 TCP-IP。

如果您必须将服务器应用程序托管为 Windows 服务,则创建一个新的 IIS 托管服务,该服务与您希望公开的服务合同具有相同的接口,但只是传递调用。

于 2012-07-19T14:18:58.787 回答