1

过去几个月 MSMQ 一直在工作,但我突然收到以下错误消息:

Message Queue service is not available.

这是当我在现场测试它时在本地测试它时,我得到以下消息:

 Unable to validate data.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: Unable to validate data.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[HttpException (0x80004005): Unable to validate data.]
   System.Web.Configuration.MachineKeySection.EncryptOrDecryptData(Boolean fEncrypt, Byte[] buf, Byte[] modifier, Int32 start, Int32 length, Boolean useValidationSymAlgo, Boolean useLegacyMode, IVType ivType, Boolean signData) +4961431
   System.Web.Security.MachineKey.Decode(String encodedData, MachineKeyProtection protectionOption) +194
   System.Web.Helpers.AntiForgeryDataSerializer.Deserialize(String serializedToken) +120

[HttpAntiForgeryException (0x80004005): A required anti-forgery token was not supplied or was invalid.]
   System.Web.Helpers.AntiForgeryDataSerializer.Deserialize(String serializedToken) +754
   System.Web.Helpers.AntiForgeryWorker.Validate(HttpContextBase context, String salt) +199
   System.Web.Mvc.ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor) +156
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +825488
   System.Web.Mvc.Controller.ExecuteCore() +159
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +469
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +375

有没有人遇到过这个问题,它一直在工作然后停止并对此进行任何修复?

编辑:我在设置 msmq 时遇到了一些问题,请参阅: MSMQ 创建错误:工作组安装计算机不支持该操作/用户的内部消息队列证书不存在

我的设置我们有 6 台服务器,它们是负载平衡的,并且都设置了 msmq,域设置为网络服务,还涉及另外两台服务器 - 接收消息的域控制器和接收消息的 serach 服务器消息 - 我不知道所有或仅一个特定服务器是否存在问题。我试图通过使用主机文件(C:\Windows\System32\drivers\etc\Host)并一次指向每台服务器来缩小范围,但它们似乎仍然是零星的,无论它们是否工作。我们确实使用缓存,所以我不确定这是否会影响任何事情......

谢谢

4

2 回答 2

0

我知道这可能听起来像一个虚拟的解决方案,但它肯定对我有用。

您需要删除 MSMQ 并重新安装,但为了让其他服务真正看到它,您需要在每一步之间重新启动......所以您需要执行以下操作:

  • 删除 MSMQ
  • 重启服务器
  • 安装 MSMQ
  • 重新启动服务器:注意有时不需要此步骤,这取决于其他服务是否能够在此级别看到 MSMQ。

祝你好运

于 2020-04-14T09:06:56.243 回答
-1

若要解决此问题,请按照下列步骤操作: 以管理员身份登录到您的计算机。单击开始,然后单击运行。

出现运行对话框。在“打开”框中,键入 Services.msc,然后单击“确定”。

出现服务窗口。找到消息队列。右键单击消息队列,然后单击属性。

出现消息队列属性(本地计算机)对话框。在登录选项卡上,单击本地系统帐户。单击应用,然后单击确定。停止消息队列服务,然后启动消息队列服务。

于 2017-09-28T06:19:25.830 回答