似乎无法修复"The protocol 'net.msmq' does not have an implementation of HostedTransportConfiguration typ



我在Windows 7/IIS 7.5上运行,并设置了一个web服务来使用net。但是当我尝试使用HTTP访问服务时,我得到以下错误:

协议网。

没有hostdtransportconfiguration类型的实现注册。
[InvalidOperationException: The protocol 'net.msmq' does not have an implementation of HostedTransportConfiguration type registered.]
   System.ServiceModel.AsyncResult.End(IAsyncResult result) +15778592
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +15698937
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +265
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +599
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171

我设置了http和net。MSMQ绑定在它所在的站点上,并且在站点和应用程序上都启用了两个协议("http,net.msmq")。

我看了文章调试丢失的hostdtransportconfiguration类型,并运行了所有的命令,但似乎没有帮助;执行sc query netmsmqactivator show:

SERVICE_NAME: netmsmqactivator
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 4  RUNNING
                                (STOPPABLE, PAUSABLE, ACCEPTS_SHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

应用程序池下运行的应用程序现在是针对。net框架v2.0,但如果我改变应用程序池目标。net框架v4.0(并作出适当的改变服务的web。配置以删除重复的configSection定义),我能够很好地看到WSDL。

据我所知,web服务不是针对。net Framework v4.0运行的;我的一个同事(也在运行Windows 7)实际上是可以用的,但由于种种原因,目前还不能比较设置。

另一个注释,可能相关也可能不相关:在尝试通过HTTP访问服务并得到上述错误后,刷新服务将导致:

已添加具有相同键的项

[ArgumentException: An item with the same key has already been added.]
   System.ServiceModel.AsyncResult.End(IAsyncResult result) +15778592
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result) +15698937
   System.ServiceModel.Activation.HostedHttpRequestAsyncResult.ExecuteSynchronous(HttpApplication context, Boolean flowContext) +265
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +599
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +171

这需要一个应用池回收来清除。

我没有使用网络的经验。所以我不知道我可能遗漏了什么相关信息;

弄清楚了:不确定是什么搞糟了,但结果是卸载然后重新安装WCF非http激活修复了它。

如果你在IIS中托管一个MSMQ/WCF服务,你必须告诉IIS允许网络。msmq协议。

相关内容

最新更新