WCF 4托管在工作组计算机中时在服务中警告"System.Messaging.MessageQueueException工作组安装计算机不支持该操作". [英] WCF 4 Warning in service when hosted in a workgroup computer "System.Messaging.MessageQueueException A workgroup installation computer does not support the operation"

查看:368
本文介绍了WCF 4托管在工作组计算机中时在服务中警告"System.Messaging.MessageQueueException工作组安装计算机不支持该操作".的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我有这个服务挂在私有队列的顶部.我已经在本地计算机上测试了该解决方案,该计算机可以按预期进行所有操作(我的计算机是域的一部分).现在,当我将其托管在工作组PC上时,它会正常工作,而不会发出一条警告 在服务的跟踪文件中.我知道工作组没有公用队列,而我已经在使用专用队列.我已经搜索了Internet,并且知道它仅与在工作组环境中使用专用队列有关.这是我得到的踪迹:


I have this service which hooks on top of a private queue. I've tested the solution on my local machine which does everything as expected (My machine is part of a domain). Now when I host it on a workgroup pc it works fine apart from one warning that gets written in the service's trace file. I know workgroup's dont' have public queues and I'm already using private queues. I've searched the internet and I know it has to do with only using private queues in a workgroup environment. Here's the trace I get:

< E2ETraceEvent xmlns =" http://schemas.microsoft.com/2004/06/E2ETraceEvent"

<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">

< System xmlns =" http://schemas.microsoft.com/2004/06/windows/eventlog/system >

<System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">

< EventID> 262227</EventID>

<EventID>262227</EventID>

< Type> 3</Type>

<Type>3</Type>

< SubType Name =警告"< 0lt//SubType>

<SubType Name="Warning">0</SubType>

< Level> 4</Level>

<Level>4</Level>

< TimeCreated SystemTime =" 2011-05-25T15:39:01.6641161Z" />

<TimeCreated SystemTime="2011-05-25T15:39:01.6641161Z" />

<源名称="System.ServiceModel"; />

<Source Name="System.ServiceModel" />

< Correlation ActivityID =" {00000000-0000-0000-0000-000000000000}" />

<Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" />

<执行ProcessName =" w3wp" ProcessID ="4888".线程ID ="6". />

<Execution ProcessName="w3wp" ProcessID="4888" ThreadID="6" />

<频道/>

<Channel />

<计算机>计算机</计算机<

<Computer>Machine</Computer>

</System>

</System>

< ApplicationData>

<ApplicationData>

< TraceData>

<TraceData>

< DataItem>

<DataItem>

< TraceRecord xmlns =" http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord "严重性=警告"

<TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Warning">

< TraceIdentifier> http://msdn.microsoft.com/zh-CN/library/System.ServiceModel.Channels.MsmqCannotReadQueues.aspx</TraceIdentifier>

<TraceIdentifier>http://msdn.microsoft.com/en-GB/library/System.ServiceModel.Channels.MsmqCannotReadQueues.aspx</TraceIdentifier>

</Description>

<Description>MsmqActivation service cannot discover queues.</Description>

< AppDomain>/LM/W3SVC/2/ROOT/Arc-2-129508115384766365</AppDomain>

<AppDomain>/LM/W3SVC/2/ROOT/Arc-2-129508115384766365</AppDomain>

< ExtendedData xmlns =" http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord ">

<ExtendedData xmlns="http://schemas.microsoft.com/2006/08/ServiceModel/DictionaryTraceRecord">

< Host>.</Host>

<Host>.</Host>

< PublicQueues> True</PublicQueues>

<PublicQueues>True</PublicQueues>

</ExtendedData>

</ExtendedData>

< Exception>

<Exception>

< ExceptionType> System.Messaging.MessageQueueException,System.Messaging,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a</ExceptionType>

<ExceptionType>System.Messaging.MessageQueueException, System.Messaging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</ExceptionType>

< Message>工作组安装计算机不支持该操作.</Message>

<Message>A workgroup installation computer does not support the operation.</Message>

< StackTrace>

<StackTrace>

在System.Messaging.MessageQueue.GetMachineId(字符串machineName)

at System.Messaging.MessageQueue.GetMachineId(String machineName)

在System.Messaging.MessageQueueCriteria.set_MachineName(字符串值)

at System.Messaging.MessageQueueCriteria.set_MachineName(String value)

在System.Messaging.MessageQueue.GetPublicQueuesByMachine(String machineName)

at System.Messaging.MessageQueue.GetPublicQueuesByMachine(String machineName)

在System.ServiceModel.Channels.MsmqBindingMonitor.OnTimer(对象状态)

at System.ServiceModel.Channels.MsmqBindingMonitor.OnTimer(Object state)

</StackTrace>

</StackTrace>

< ExceptionString> System.Messaging.MessageQueueException(0x80004005):工作组安装计算机不支持该操作.

<ExceptionString>System.Messaging.MessageQueueException (0x80004005): A workgroup installation computer does not support the operation.

  在System.Messaging.MessageQueue.GetMachineId(String machineName)处

   at System.Messaging.MessageQueue.GetMachineId(String machineName)

  在System.Messaging.MessageQueueCriteria.set_MachineName(字符串值)

   at System.Messaging.MessageQueueCriteria.set_MachineName(String value)

  在System.Messaging.MessageQueue.GetPublicQueuesByMachine(String machineName)处

   at System.Messaging.MessageQueue.GetPublicQueuesByMachine(String machineName)

  位于System.ServiceModel.Channels.MsmqBindingMonitor.OnTimer(对象状态)</ExceptionString>

   at System.ServiceModel.Channels.MsmqBindingMonitor.OnTimer(Object state)</ExceptionString>

</Exception>

</Exception>

</TraceRecord>

</TraceRecord>

</DataItem>

</DataItem>

</TraceData>

</TraceData>

</ApplicationData>

</ApplicationData>

</E2ETraceEvent>

</E2ETraceEvent>

我的服务端点的定义如下:

My service endpoint is defined like:

<端点

address =" net.msmq://localhost/private/Arc2/EventLogService.svc"

address="net.msmq://localhost/private/Arc2/EventLogService.svc"

binding ="netMsmqBinding"

binding="netMsmqBinding"

bindingConfiguration =" MsmqBinding"

bindingConfiguration="MsmqBinding"

contract ="Arc2Service.IEventLogService"; />

contract="Arc2Service.IEventLogService" />

 

< binding name =" MsmqBinding" fullyOnce ="true"持久=真"

<binding name="MsmqBinding" exactlyOnce="true" durable="true"

receiveErrorHandling =移动"; maxReceivedMessageSize ="2147483647">

receiveErrorHandling="Move" maxReceivedMessageSize="2147483647">

<安全模式=无". />

<security mode="None" />

< readerQuotas maxDepth =" 2147483647" maxStringContentLength ="2147483647"

<readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647"

maxArrayLength ="2147483647"; maxBytesPerRead ="2147483647"

maxArrayLength="2147483647" maxBytesPerRead="2147483647"

maxNameTableCharCount ="2147483647"; />

maxNameTableCharCount="2147483647" />

</binding>

</binding>

 

有什么想法吗?

推荐答案

您好,尝试使用直接格式名称:
Hello, try to use direct format names: http://msdn.microsoft.com/en-us/library/ms700996(VS.85).aspx. Most MSMQ features are not supported in workgroups unless you use direct format names.


这篇关于WCF 4托管在工作组计算机中时在服务中警告"System.Messaging.MessageQueueException工作组安装计算机不支持该操作".的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆