Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WAS为的WCF服务:服务无法转换队列';路径名_Wcf_Transactions_Msmq_Wcf Security_Was - Fatal编程技术网

WAS为的WCF服务:服务无法转换队列';路径名

WAS为的WCF服务:服务无法转换队列';路径名,wcf,transactions,msmq,wcf-security,was,Wcf,Transactions,Msmq,Wcf Security,Was,我得到了一个WCF服务,它通过一个位于同一域中不同服务器上的MSMQ上的via进行侦听 设置如下所示: 服务器A:Windows Server 2008在IIS上承载WCF服务 服务器B:Windows Server 2008(域控制器)承载专用MSMQ(AD集成) 此外,我还得到了一个运行在服务器a上的控制台客户端,它通过MSMQ(也使用WCF)向服务发送消息。此时,整个设置工作正常,服务处理来自客户端的消息。客户端的安全模式设置为transport,服务的安全模式设置为none 但是,当我将

我得到了一个WCF服务,它通过一个位于同一域中不同服务器上的MSMQ上的via进行侦听

设置如下所示:

服务器A:Windows Server 2008在IIS上承载WCF服务

服务器B:Windows Server 2008(域控制器)承载专用MSMQ(AD集成)

此外,我还得到了一个运行在服务器a上的控制台客户端,它通过MSMQ(也使用WCF)向服务发送消息。此时,整个设置工作正常,服务处理来自客户端的消息。客户端的安全模式设置为
transport
,服务的安全模式设置为
none

但是,当我将服务的安全模式也切换到
传输
时,消息将不再被处理。我激活了对该服务的跟踪,发现当该服务尝试访问另一台服务器上的MSMQ时似乎出现了问题。在两种安全模式
none
transport
上都可以看到警告和错误消息(见下文),但当设置为
none
时,服务似乎忽略了问题,并处理消息

错误消息显示:

转换文件时出错 'murdock.ltportale.intern\private$\EventSyncService/EventSynchorinizationService.svc' 将队列路径名称转换为格式名称: 无法识别的错误-107282430 (0xc00e0014)。网络上的所有操作 排队通道失败。确保 队列地址有效。MSMQ必须是 与Active Directory一起安装 启用集成并访问它 有空

我不认为MSMQ的地址是错误的,因为服务可以在安全模式下找到它
none
。我也很确定MSMQ是通过广告集成运行的,因为我花了2天时间才在我的环境中运行

目前我不知道我做错了什么。在没有
传输
安全模式的情况下运行安装程序对我来说是没有选择的,因为我的下一步将是激活事务。我认为如果传输模式不起作用,那么事务模式也不起作用


警告消息:

 ...
 <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Warning">
     <TraceIdentifier>
         http://msdn.microsoft.com/de-DE/library/System.ServiceModel.Channels.MsmqQueueTransactionalStatusUnknown.aspx
     </TraceIdentifier>
     <Description>
         Cannot detect if the queue is transactional.
     </Description>
     <AppDomain>
         /LM/W3SVC/3/ROOT/EventSyncService-1-129509714416559522
     </AppDomain>
     <ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/StringTraceRecord">                               
         <FormatName> 
              DIRECT=OS:murdock.ltportale.intern\private$\EventSyncService/EventSynchorinzationService.svc
         </FormatName>
     </ExtendedData>
  </TraceRecord>
  ...
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
    <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
        <EventID>131075</EventID>
        <Type>3</Type>
        <SubType Name="Error">0</SubType>
        <Level>2</Level>
        <TimeCreated SystemTime="2011-05-27T12:04:11.5292297Z" />
        <Source Name="System.ServiceModel" />
        <Correlation ActivityID="{f89d797c-3d10-47a3-8dad-1b3200d3b868}" />
        <Execution ProcessName="w3wp" ProcessID="1764" ThreadID="6" />
        <Channel />
        <Computer>SPS2010-FBE</Computer>
    </System>
    <ApplicationData>
        <TraceData>
            <DataItem>
                <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Error">
                    <TraceIdentifier>
                        http://msdn.microsoft.com/de-DE/library/System.ServiceModel.Diagnostics.ThrowingException.aspx
                    </TraceIdentifier>
                    <Description>Throwing an exception.</Description>
                    <AppDomain>/LM/W3SVC/3/ROOT/EventSyncService-1-129509714416559522
                    </AppDomain>
                    <Exception>
                        <ExceptionType>
                            System.ServiceModel.MsmqException, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
                        </ExceptionType>
                        <Message>
                            An error occurred when converting the 'murdock.ltportale.intern\private$\EventSyncService/EventSynchorinzationService.svc' queue path name to the format name: Unrecognized error -1072824300 (0xc00e0014). All operations on the queued channel failed. Ensure that the queue address is valid. MSMQ must be installed with Active Directory integration enabled and access to it is available.
                        </Message>
                        <StackTrace>
                               at System.ServiceModel.Channels.MsmqFormatName.FromQueuePath(String queuePath)
                               at System.ServiceModel.Channels.MsmqVerifier.VerifyReceiver(MsmqReceiveParameters receiveParameters, Uri listenUri)
                               at System.ServiceModel.Channels.MsmqTransportBindingElement.BuildChannelListener[TChannel](BindingContext context)
                               at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
                               at System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener[TChannel](BindingContext context)
                               at System.ServiceModel.Channels.BinaryMessageEncodingBindingElement.BuildChannelListener[TChannel](BindingContext context)
                               at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
                               at System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, BindingParameterCollection parameters)
                               at System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(Boolean actuallyCreate, Type[] supportedChannels, Binding binding, BindingParameterCollection parameters, Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, ServiceThrottle throttle, IChannelListener&amp;amp; result, Boolean supportContextSession)
                               at System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode listenUriMode, Boolean supportContextSession, IChannelListener&amp;amp; result)
                               at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
                               at System.ServiceModel.ServiceHostBase.InitializeRuntime()
                               at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
                               at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
                               at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
                               at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
                               at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)
                               at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()
                               at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
                               at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state)
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke2()
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke()
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ProcessCallbacks()
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.CompletionCallback(Object state)
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
                               at System.ServiceModel.Diagnostics.Utility.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
                               at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
                        </StackTrace>
                        <ExceptionString>
                            System.ServiceModel.MsmqException: An error occurred when converting the 'murdock.ltportale.intern\private$\EventSyncService/EventSynchorinzationService.svc' queue path name to the format name: Unrecognized error -1072824300 (0xc00e0014). All operations on the queued channel failed. Ensure that the queue address is valid. MSMQ must be installed with Active Directory integration enabled and access to it is available.
                        </ExceptionString>
                    </Exception>
                </TraceRecord>
            </DataItem>
        </TraceData>
    </ApplicationData>
</E2ETraceEvent>
。。。
http://msdn.microsoft.com/de-DE/library/System.ServiceModel.Channels.MsmqQueueTransactionalStatusUnknown.aspx
无法检测队列是否为事务性队列。
/LM/W3SVC/3/ROOT/EventSyncService-1-129509714416559522
DIRECT=OS:murdock.ltportale.intern\private$\EventSyncService/EventSynchorinizationService.svc
...
错误消息:

 ...
 <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Warning">
     <TraceIdentifier>
         http://msdn.microsoft.com/de-DE/library/System.ServiceModel.Channels.MsmqQueueTransactionalStatusUnknown.aspx
     </TraceIdentifier>
     <Description>
         Cannot detect if the queue is transactional.
     </Description>
     <AppDomain>
         /LM/W3SVC/3/ROOT/EventSyncService-1-129509714416559522
     </AppDomain>
     <ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/StringTraceRecord">                               
         <FormatName> 
              DIRECT=OS:murdock.ltportale.intern\private$\EventSyncService/EventSynchorinzationService.svc
         </FormatName>
     </ExtendedData>
  </TraceRecord>
  ...
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
    <System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
        <EventID>131075</EventID>
        <Type>3</Type>
        <SubType Name="Error">0</SubType>
        <Level>2</Level>
        <TimeCreated SystemTime="2011-05-27T12:04:11.5292297Z" />
        <Source Name="System.ServiceModel" />
        <Correlation ActivityID="{f89d797c-3d10-47a3-8dad-1b3200d3b868}" />
        <Execution ProcessName="w3wp" ProcessID="1764" ThreadID="6" />
        <Channel />
        <Computer>SPS2010-FBE</Computer>
    </System>
    <ApplicationData>
        <TraceData>
            <DataItem>
                <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Error">
                    <TraceIdentifier>
                        http://msdn.microsoft.com/de-DE/library/System.ServiceModel.Diagnostics.ThrowingException.aspx
                    </TraceIdentifier>
                    <Description>Throwing an exception.</Description>
                    <AppDomain>/LM/W3SVC/3/ROOT/EventSyncService-1-129509714416559522
                    </AppDomain>
                    <Exception>
                        <ExceptionType>
                            System.ServiceModel.MsmqException, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
                        </ExceptionType>
                        <Message>
                            An error occurred when converting the 'murdock.ltportale.intern\private$\EventSyncService/EventSynchorinzationService.svc' queue path name to the format name: Unrecognized error -1072824300 (0xc00e0014). All operations on the queued channel failed. Ensure that the queue address is valid. MSMQ must be installed with Active Directory integration enabled and access to it is available.
                        </Message>
                        <StackTrace>
                               at System.ServiceModel.Channels.MsmqFormatName.FromQueuePath(String queuePath)
                               at System.ServiceModel.Channels.MsmqVerifier.VerifyReceiver(MsmqReceiveParameters receiveParameters, Uri listenUri)
                               at System.ServiceModel.Channels.MsmqTransportBindingElement.BuildChannelListener[TChannel](BindingContext context)
                               at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
                               at System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener[TChannel](BindingContext context)
                               at System.ServiceModel.Channels.BinaryMessageEncodingBindingElement.BuildChannelListener[TChannel](BindingContext context)
                               at System.ServiceModel.Channels.BindingContext.BuildInnerChannelListener[TChannel]()
                               at System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, BindingParameterCollection parameters)
                               at System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(Boolean actuallyCreate, Type[] supportedChannels, Binding binding, BindingParameterCollection parameters, Uri listenUriBaseAddress, String listenUriRelativeAddress, ListenUriMode listenUriMode, ServiceThrottle throttle, IChannelListener&amp;amp; result, Boolean supportContextSession)
                               at System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff, ServiceHostBase serviceHost, Uri listenUri, ListenUriMode listenUriMode, Boolean supportContextSession, IChannelListener&amp;amp; result)
                               at System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost)
                               at System.ServiceModel.ServiceHostBase.InitializeRuntime()
                               at System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout)
                               at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
                               at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
                               at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
                               at System.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath)
                               at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()
                               at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
                               at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state)
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke2()
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.WorkItem.Invoke()
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ProcessCallbacks()
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.CompletionCallback(Object state)
                               at System.ServiceModel.Channels.IOThreadScheduler.CriticalHelper.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
                               at System.ServiceModel.Diagnostics.Utility.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
                               at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
                        </StackTrace>
                        <ExceptionString>
                            System.ServiceModel.MsmqException: An error occurred when converting the 'murdock.ltportale.intern\private$\EventSyncService/EventSynchorinzationService.svc' queue path name to the format name: Unrecognized error -1072824300 (0xc00e0014). All operations on the queued channel failed. Ensure that the queue address is valid. MSMQ must be installed with Active Directory integration enabled and access to it is available.
                        </ExceptionString>
                    </Exception>
                </TraceRecord>
            </DataItem>
        </TraceData>
    </ApplicationData>
</E2ETraceEvent>

131075
3.
0
2.
SPS2010-FBE
http://msdn.microsoft.com/de-DE/library/System.ServiceModel.Diagnostics.ThrowingException.aspx
正在引发异常。
/LM/W3SVC/3/ROOT/EventSyncService-1-129509714416559522
System.ServiceModel.MsmqException,System.ServiceModel,版本=3.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089
将“murdock.ltportale.intern\private$\EventSyncService/EventSynchorinizationService.svc”队列路径名转换为格式名时出错:无法识别的错误-107282430(0xc00e0014)。排队通道上的所有操作均失败。请确保队列地址有效。安装MSMQ时必须启用Active Directory集成,并且可以访问它。
位于System.ServiceModel.Channels.MsmqFormatName.FromQueuePath(字符串queuePath)
位于System.ServiceModel.Channels.MsmqVerifier.VerifyReceiver(MsmqReceiveParameters receiveParameters,Uri listenUri)
位于System.ServiceModel.Channels.MsmqTransportBindingElement.BuildChannelListener[TChannel](BindingContext上下文)
位于System.ServiceModel.Channels.BindingContext.BuildinerChannelListener[TChannel]()
位于System.ServiceModel.Channels.MessageEncodingBindingElement.InternalBuildChannelListener[TChannel](BindingContext上下文)
位于System.ServiceModel.Channels.BinaryMessageEncodingBindingElement.BuildChannelListener[TChannel](BindingContext上下文)
位于System.ServiceModel.Channels.BindingContext.BuildinerChannelListener[TChannel]()
在System.ServiceModel.Channels.Binding.BuildChannelListener[TChannel](Uri listenUriBaseAddress,String ListenUrIReRelativeAddress,ListenUriMode ListenUriMode,BindingParameterCollection参数)
位于System.ServiceModel.Description.DispatcherBuilder.MaybeCreateListener(布尔值实际创建,类型[])SupportedChannel、Binding Binding、BindingParameterCollection参数、Uri listenUriBaseAddress、字符串ListenUreRelativeAddress、ListenUriMode ListenUriMode、ServiceThrottle throttle、IChannelListener&;result、布尔supportContextSession)
位于System.ServiceModel.Description.DispatcherBuilder.BuildChannelListener(StuffPerListenUriInfo stuff、ServiceHostBase serviceHost、Uri listenUri、ListenUriMode ListenUriMode、Boolean supportContextSession、IChannelListener和结果)
位于System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription,ServiceHostBase serviceHost)
在系统服务