Wcf服务访问和通过IIS路由

时间:2012-07-19 14:09:59

标签: c# wcf iis

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

当前拓扑:

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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