MSMQ wcf与.net 4.0和server 2008的激活问题

mam*_*amu 10 .net wcf msmq netmsmqbinding

我有从net 3.5移植的.net 4.0应用程序,它使用在服务器2008 x64上运行的net.msmq

建立

  • net.msmq服务,地址为"net.msmq://localhost/private/msmqdataservice.svc"
  • net.msmq endpoing,地址为"net.msmq://localhost/private/msmqdataservice.svc"
  • MSMQ中的队列 - > name ="$ private\msmqdataservice.svc"

现在一切都在使用.net 3.5进行生产.

我在服务器上安装了.net 4.0并创建了新站点以便在同一个盒子上进行暂存.

新的暂存msmq设置是

  • net.msmq服务,地址为"net.msmq://localhost/private/staging/msmqdataservice.svc"
  • net.msmq endpoing,地址为"net.msmq://localhost/private/staging/msmqdataservice.svc"
  • MSMQ中的队列 - > name ="$ private\staging/msmqdataservice.svc"

为不同的站点创建了另一个队列.

我用新网站做的另一个变化是,这是iis中不同的网站,可以监听不同的IP地址.我已将net.msmq绑定到'localhost'.主站点以及net.msmq - >'localhost'具有相同的绑定.我认为应该是这样的.请指出是否需要一些不同的配置.

问题是我的请求正在进入队列但没有被应用程序接收它只是停留在那里

日志中没有任何错误迹象.我在日志中看到的与此相关的事情是警告"msmqactivation无法发现队列".虽然这个警告我从来没有正确理解,因为我们已经看到这总是与3.5中的msmq一切都很好.

我能想到的任何东西都经过验证,而且是正确的.

  • 应用程序的应用程序池作为网络服务运行,并且具有对队列的完全访问权限.
  • net.msmq激活服务正在运行网络服务
  • 尝试了相同结果的服务URL的不同命名约定

摘要

请使用net.msmq提供有关多个站点设置的任何信息.我正在为两个站点使用net.msmq绑定值='localhost'.我认为这是机器名称.

有什么方法可以诊断这个问题吗?

您可能想到的任何其他事情都可能有所帮助.

昨天我们不得不推迟释放,因为花了100个工时我们无法弄清问题是什么.也不能让它在我的开发机器中破碎.

编辑

问题是在创建新站点命名约定后不起作用

net.msmq服务地址为"net.msmq://localhost/private/staging/msmqdataservice.svc"net.msmq endpoing,地址为MSMQ中的"net.msmq://localhost/private/staging/msmqdataservice.svc"队列 - > name ="$ private\staging/msmqdataservice.svc"

它使用服务名称net.msmq://localhost/private/msmqdataservice.svc

但现在我不能让两个站点使用完全相同的端点.

在同一台机器上的不同url和不同队列的两个不同站点中有相同端点的方法吗?

Ada*_*les 0

使用不同的端口怎么样?您可以使用相同的主机名并告诉 WAS 在新虚拟目录或站点中的新端口上激活。