我可以在IIS7站点的根“/”应用程序中使用NetMsmqBinding托管WCF服务吗?

时间:2009-02-25 14:56:25

标签: wcf iis iis-7 msmq was

我使用NetMsmqBinding创建了一个WCF服务,并使用Windows激活服务(WAS)将其托管在IIS7中。

当前(效果很好):

在IIS中托管:http://localhost/MyService/MyService.svc

使用服务端点地址:http://localhost/private/MyService/MyService.svc

相应的队列:.\private$\MyService/MyService.svc

渴望(什么也不做,甚至不是错误信息):

在IIS中托管:http://localhost/MyService.svc

使用服务端点地址:http://localhost/private/MyService.svc

相应的队列:.\private$\MyService.svc

当我使用MyService IIS应用程序时,一切都很完美。但是当我尝试使用根“/”应用程序而不是“MyService”应用程序来托管服务时,相同的设置(代码,IIS安全性,队列安全性等)什么都不做。我在事件日志中没有收到任何错误。传入的消息只是排在队列中。

是否在IIS7站点的根应用程序中托管了WAS激活的服务?

2 个答案:

答案 0 :(得分:1)

我发现了一个错误,即在根目录中托管WCF服务(在MSFT支持的手机上花了很多时间),因此将它们托管在应用程序中。

例如,我在IIS7中托管了netMsmqBinding服务,它是为WAS配置的,它在默认站点中托管为:

http://mymachine/msmqtest/service.svc

需要调用MSMQ的队列名称:

“msmqtest / service.svc”

配置中的端点需要:

net.msmq://mymachine/private/msmqtest/service.svc

此外,请确保您在配置中使用计算机名称,而不是主机标题名称或其他内容。 MSMQ从计算机到计算机,非常重要。

答案 1 :(得分:0)

托管WAS已激活的服务确实有效。我对netMsmqBinding并不是100%肯定。终点需要http://localhost/service.svc不是/私有。