Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
NServiceBus正在UnicastBus.IsInitializationMessage中引发ArgumentNullException_Nservicebus - Fatal编程技术网

NServiceBus正在UnicastBus.IsInitializationMessage中引发ArgumentNullException

NServiceBus正在UnicastBus.IsInitializationMessage中引发ArgumentNullException,nservicebus,Nservicebus,我对某个特定部署中遇到的问题感到有点困惑,但不是 在我的机器上。这是一个web应用程序,它正在接收要保留的NServiceBus事件 已更新持久视图模型。传入MSMQ的服务中有等待的事件,因此 订阅似乎工作正常,但应用程序未处理 他们。我得到的输出如下所示。为大量的文本感到抱歉;这个 总结是日志指向UnicastBus。在运行时地址为空。 也许我的配置中缺少了一些东西 以下是日志: [Worker.11] INFO NServiceBus.Unicast.UnicastBus [(null)]

我对某个特定部署中遇到的问题感到有点困惑,但不是 在我的机器上。这是一个web应用程序,它正在接收要保留的NServiceBus事件 已更新持久视图模型。传入MSMQ的服务中有等待的事件,因此 订阅似乎工作正常,但应用程序未处理 他们。我得到的输出如下所示。为大量的文本感到抱歉;这个 总结是日志指向UnicastBus。在运行时地址为空。 也许我的配置中缺少了一些东西

以下是日志:

[Worker.11] INFO NServiceBus.Unicast.UnicastBus [(null)] -
Common.Users.WebApp.DevTest initialized.
[10] INFO NServiceBus.Unicast.UnicastBus [(null)] - Subscribing to
Common.Users.Messages.Events.IAllUsersPublished, Common.Users.Messages,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null at publisher queue
Common.Users.MessageHandlers.DevTest
[10] INFO NServiceBus.Unicast.UnicastBus [(null)] - Subscribing to
Common.Users.Messages.Events.IAllUsersPublished, Common.Users.Messages,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null at publisher queue
Common.Users.MessageHandlers.DevTest
INFO NServiceBus.Unicast.UnicastBus [(null)] - Common.Users.WebApp.DevTest
initialized.
WARN NServiceBus.Unicast.Transport.Msmq.MsmqTransport [(null)] - Failed raising
'transport message received' event for message with
ID=537591b0-20e2-4ab9-aabc-b635c3d0e23c\3997
System.ArgumentNullException: Value cannot be null.
Parameter name: value
at System.String.IndexOf(String value, Int32 startIndex, Int32 count,
StringComparison comparisonType)
at NServiceBus.Unicast.UnicastBus.IsInitializationMessage(TransportMessage
msg) in
d:\code\nservicebus-src\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 1211
at NServiceBus.Unicast.UnicastBus.TransportMessageReceived(Object sender,
TransportMessageReceivedEventArgs e) in
d:\code\nservicebus-src\src\unicast\NServiceBus.Unicast\UnicastBus.cs:line 1056
at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
at
NServiceBus.Unicast.Transport.Msmq.MsmqTransport.OnTransportMessageReceived(Tran\
sportMessage msg) in
d:\code\nservicebus-src\src\impl\unicast\NServiceBus.Unicast.Msmq\MsmqTransport.\
cs:line 400
最后一个条目对队列中的每条消息重复;队列消息 排队等候

所以我检查了源代码IsInitializationMessage;这是投球 代码:


我将web应用程序的应用程序池使用的标识从defaultapppool更改为网络服务。在下次启动时,web应用程序报告了相同的错误。一小时后它再次启动,问题消失了,所有消息都得到了成功处理。我不知道身份改变是否修复了它,或者是否有其他一些我不知道的改变。如果它再次发生,或者我了解更多,我会尝试在这里发布

private bool IsInitializationMessage(TransportMessage msg)
{
if (msg.ReturnAddress == null)
return false;

if (!msg.ReturnAddress.Contains(Address)) <<< THROWS
return false;
<MsmqTransportConfig
InputQueue="Common.Users.WebApp.DevTest"
NumberOfWorkerThreads="1"
MaxRetries="5"
ErrorQueue="Common.Users.WebApp.DevTest.Errors" />

<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="Common.Users.Messages"
Endpoint="Common.Users.MessageHandlers.DevTest" />
</MessageEndpointMappings>
</UnicastBusConfig>
Dim bus = NServiceBus.Configure.WithWeb() _
.Log4Net() _
.StructureMapBuilder() _
.XmlSerializer() _
.MsmqTransport() _
.UnicastBus().LoadMessageHandlers() _
.CreateBus()
bus.Start()