C# MSMQ导致Windows 8因BSOD而崩溃

C# MSMQ导致Windows 8因BSOD而崩溃,c#,windows-8,msmq,C#,Windows 8,Msmq,我使用Windows8Pro、C#和.NET4.5 我使用MSMQ在远程机器上读取、查看或发送消息,但它会导致操作系统出现BSOD 本地没有问题,但只有当我尝试通过代码访问带有msmq的远程计算机时才有问题 该代码在XP/Seven和Server 2008/2012下运行良好 以下是一个小示例: var messageQueue = new MessageQueue(string.Concat("FormatName:DIRECT=", addressType, ":", _queueServe

我使用Windows8Pro、C#和.NET4.5

我使用MSMQ在远程机器上读取、查看或发送消息,但它会导致操作系统出现BSOD

本地没有问题,但只有当我尝试通过代码访问带有msmq的远程计算机时才有问题

该代码在XP/Seven和Server 2008/2012下运行良好

以下是一个小示例:

var messageQueue = new MessageQueue(string.Concat("FormatName:DIRECT=", addressType, ":", _queueServer, @"\private$\", _queueName), false, false, QueueAccessMode.Receive);

messageQueue.Receive() => BSOD!!!
有人有解决办法或解释吗

谢谢,


问候您。

如果您进入C:\windows\minidump

然后用“Windows调试工具”打开*.dmp文件

这应该能让我们更深入地了解问题的本质。

我找到了

MSMQ 4.0随windows server 2008提供,默认情况下,任何操作系统的上次更新都使用ipv6。 因此,您必须停用IPV6以防止Windows 8下的BSOD
事件,您必须停用它才能读取远程队列

dnx:你的意思是在远程计算机或您自己的本地计算机上禁用ipv6吗?

这似乎是MSMQ中的一个相当严重的错误…未经授权的用户代码永远不会导致BSoD。BSoD会很有帮助。我从未使用过这个。。。我怎样才能使用这些工具来找到bug?!因此,您将转到此处,然后查找此链接“将Windows调试工具作为独立组件安装(来自Windows SDK)”,然后在上面的同一页上安装该链接,然后为您的特定操作系统下载符号包。一旦安装,打开它。转到文件>>>打开崩溃转储并指向迷你转储文件所在的位置,稍等它加载,viola它会让您了解是什么驱动程序或问题导致了问题。99.999%的情况下,列出的驱动程序是culprit,而另一个0.001%的情况下,驱动程序失败是其他原因的症状,但至少你有一个解决问题的方向。哦,我应该更好地阅读你的问题我的道歉,如果问题与您的MQ连接有关,那么它将不会发现该连接的错误。这将告诉您MQ是否是问题所在,或者是其他原因导致它崩溃。我应该读一读较慢的derp,没有理由认为启用IPv6 supoprt会导致崩溃。如果启用IPv6是导致BSOD的原因(我对此表示怀疑),那么BSOD会发生在Windows 7、Windows Server 2008 R2和Windows Server 2012上。您好,事实是,当我在Windows 8上激活IPv6并读取远程队列时,它会使我的电脑崩溃。当我停用它时,它运行没有问题。如果没有BSOD错误代码,您无法排除崩溃是由于坏驱动程序或其他原因造成的,而这些原因只是因为IPv6而无法发生的。正如我指出的,这个问题应该存在于Windows Server 2012中,但事实并非如此。很抱歉耽搁了在这里通知。。热修复程序解决了这个问题@感谢您指出修补程序,jha似乎正在解决我在Windows Server 2012上的BSOD问题。