我使用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激活的服务?
答案 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不是/私有。