相当新的 VM,我只在其中添加了 IIS 并推送了一些 Web 应用程序源代码。然后我运行 powershell 命令...
Enable-WindowsOptionalFeature -Online -FeatureName MSMQ-Server -All
支持一些旧的应用程序功能但遇到了错误...
Enable-WindowsOptionalFeature : The referenced assembly could not be found.
At line:1 char:1
+ Enable-WindowsOptionalFeature -Online -FeatureName MSMQ-Server -All
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Enable-WindowsOptionalFeature], COMException
+ FullyQualifiedErrorId : Microsoft.Dism.Commands.EnableWindowsOptionalFeatureCommand
我注意到了这些...
...但没有成功解决问题,而且我不确定它们之间有何关联,因为它们之间存在差异。
常规流程(如下所示:https://support.mailessentials.gfi.com/hc/en-us/articles/360015143519--在Windows-Server-2016上安装MSMQ) 通过“程序和功能”GUI 产生同样的错误。
我运行了以下命令以确保系统没有以某种方式损坏,但他们没有发现任何问题......
sfc /scannow
dism /Online /Cleanup-Image /CheckHealth
有没有办法手动安装(也许是 MSI 下载或者其他什么)?
答案1
看起来此功能现在已被弃用,旧操作系统版本仍然支持它,但 Server 2019 似乎不支持,因此部署到 Azure 的最先进的 VM 根本不支持 MSMQ。
就我而言,这不是世界末日,我能够在我的代码堆栈中重新实现单个接口并将其完全淘汰,但其他人可能就没那么幸运了。
考虑到我所面临的问题的性质,我向 Azure 支持提交了 A 优先级票,大约 5 分钟后他们回复说“我没有解决方案给你”。
我已经完成了重写以避免该问题,但这非常有说服力。
任何使用 MSMQ 的人,如果您需要它,请部署服务器 2016 或更早的操作系统,如果像我一样您可以编写代码,我建议使用 Azure 队列或类似的东西来替换对 MSMQ 的需求。