2009-04-28 47 views
4

我试图发布一个计算服务将被应用服务器使用的一堆计算机上。计算服务器是有状态的,需要能够执行异步回调,所以我想通过TCP使用每会话设置。WAS承载与net.tcp绑定的WCF服务

服务应用程序是使用VS2008中的WCF服务应用程序项目类型构建的。

碰巧计算服务机器正在运行Vista,所以根据我读过的文档,我应该能够使用WAS主机。我试图按照关于这个问题微软的说明:

Install and configure WCF components

Host a WCF service in WAS

但我早跑了麻烦。我应该将.svc文件放入我的应用程序的虚拟目录中。但由于我没有使用IIS托管,我该如何创建虚拟目录?上面的文档并不清楚这一点。

此外,试图运行它允许我的应用程序的net.tcp访问时,命令:

%windir%\system32\inetsrv\appcmd.exe set app "Default Web Site/<WCF Application>" /enabledProtocols:net.tcp 

我不知道该怎么更换<WCF Application>。同样,似乎还有一个步骤缺少以“IIS托管式”方式发布服务的地方。

我创建了一个试图使用该服务的测试应用程序。当我点击“添加服务引用”时,它发现我的服务,但无法使用net.tcp连接到它。

有没有人在这里成功地在WAS托管和消费服务?你对我有什么建议吗?

更新:我现在尝试添加net.tcp绑定到使用IIS管理器的网站(右键单击 - >编辑绑定...),但添加...对话框中唯一可用的协议是http和https 。该列表中没有net.tcp。是的,我已经安装了非http激活组件......非常奇怪。

回答

5

由于WASIIS架构的一部分,你需要在IIS 网站(例如“默认Web站点”)指向WCF服务的物理位置创建一个虚拟目录你正在主持。然后,您将不得不在该虚拟目录上创建一个应用程序,就像您在ASP.NET网站或ASMX Web服务中那样。
您可以通过使用IIS 7的管理控制台轻松完成此操作。

您可以阅读的详细信息关于WAS如何在IIS7中工作here
欲了解更多一步一步指南WAS托管看看this article

+0

谢谢,我的确使用IIS管理器来做这件事。但是,编辑绑定对话框中不存在net.tcp。我不明白为什么因为我添加了非http激活。 – 2009-04-28 13:33:48

1

您需要将net.tcp绑定添加到IIS中应用程序的绑定。

右键单击IIS中的虚拟目录/应用程序 - >管理应用程序 - >高级设置。

在Enabled Protocols部分,只需添加net.tcp和voila!