生产中的 Azure SDK 2.2:无法加载文件或程序集“msshrtmi”或其依赖项之一。该系统找不到指定的文件

2024-03-04

我在 StackOverflow 和其他网站上的其他几个线程中读到过有关此问题的信息。其他解决方案都没有解决我的问题,而且大多数都已经过时,引用了旧版本的 Azure SDK。

我有一个部署到 Azure 的典型 Azure 网站角色,该角色使用Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener记录跟踪消息。当跟踪发生时,看起来好像DiagnosticMonitorTraceListener正在使用RoleEnvironment类,它又尝试加载显然不存在的msshrtmi.dll。以下是记录到 Azure 文件系统的堆栈跟踪的一部分:

[FileNotFoundException: Could not load file or assembly 'msshrtmi, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.]
   Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.InitializeEnvironment() +0
   Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment..cctor() +747

[TypeInitializationException: The type initializer for 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment' threw an exception.]
   Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment.get_IsAvailable() +0
   Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.GetDefaultStartupInfoForCurrentRoleInstance() +23
   Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener..ctor() +34

[ConfigurationErrorsException: Could not create Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=2.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.]
   System.Diagnostics.TraceUtils.GetRuntimeObject(String className, Type baseType, String initializeData) +9004943
   System.Diagnostics.TypedElement.BaseGetRuntimeObject() +110
   System.Diagnostics.ListenerElement.GetRuntimeObject() +989
   System.Diagnostics.ListenerElementsCollection.GetRuntimeObject() +252
   System.Diagnostics.TraceInternal.get_Listeners() +331
   System.Diagnostics.TraceInternal.WriteLine(String message) +161
   Microsoft.WindowsAzure.AzureApplicationSettings..ctor() +437
   Microsoft.WindowsAzure.CloudConfigurationManager.get_AppSettings() +137
   Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting(String name) +27
   TankSoft.EverMarket.EverMarketPrereleaseRole.Endpoints.Api.Notify..ctor() +40
   lambda_method(Closure , Object[] ) +60
   Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate() +315

各种线程都提到了我需要如何从 bin 文件夹中清除此 DLL,但该 DLL 一开始就没有被复制。我怀疑这与我在 Azure SDK 2.2 而不是 1.x 下运行有关。我意识到我可以直接引用 DLL,但我觉得我不必这样做才能将一个非常正常的项目部署到 Azure。为什么 Microsoft 没有自动检测我的项目需要此文件并为我部署正确的文件?这太令人抓狂了。

我还要说一下,我正在发布的项目是不是云服务而是一个常规的 Azure 网站项目。

有没有人运行 Azure SDK 2.x设法解决这个问题?您具体执行了哪些步骤?


这感觉像是黑客攻击,但这是我能想到解决这个问题的唯一方法。

  1. 打开解决方案的配置管理器
  2. 选择调试解决方案配置
  3. 为 x64 创建新的解决方案平台
  4. 对于每个 Web 角色和辅助角色项目,将平台设置为 x64
  5. 删除 Any CPU 解决方案平台
  6. 对发布配置进行相同的更改
  7. 添加参考C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\v2.2\bin\runtimes\base\x64\msshrtmi.dll
  8. Set Copy Local关于新的参考True

EDIT:我最终删除了检查 RoleEnvironment 的代码;相反,我依靠 Web.config/App.config 转换来修改运行时的行为。这消除了对 msshrtmi.dll 的依赖。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生产中的 Azure SDK 2.2:无法加载文件或程序集“msshrtmi”或其依赖项之一。该系统找不到指定的文件 的相关文章

随机推荐

  • 使用类为第三方库创建类型

    我有一个第三方库 它具有以下 ES6 类签名 class Machine constructor options static list callback create options callback 我尝试为此类创建类型声明 但出现一些
  • 在 Vim 中打开 NERDTree 和 Tlist 并排放置

    我正在寻找一种方法来 自动 打开左侧正上方的 NERDTree 和 Tlist 以便每个插件占据屏幕高度的一半 我已经找到了这个问题 https stackoverflow com questions 6005874 opening a w
  • Servlet 中的 JSF 托管 Bean

    有没有办法从 servlet 访问 JSF 托管 bean 在 Servlet 中 您可以通过以下方式获取请求范围的 beans Bean bean Bean request getAttribute beanName 和会话作用域的 be
  • Java 数组效率

    我不能 100 确定该机制正在发挥作用 因此我决定在此发帖以进一步澄清 我正在做一个项目 应该用Java处理大量数据 它必须是Java 我希望它尽可能高效 我所说的高效是指内存和计算速度应该放在第一位 可读性应该放在第二位 现在我有两种方法
  • 使用图像(宽高比填充)和视频制作 AVMutableComposition 以适合宽高比

    我正在尝试使用尺寸始终为 CGSize 375 667 的图像制作新视频 但视频尺寸不同 且 contentMode 为 aspectFit 问题是我无法弄清楚如何使整个视频组合具有正确的尺寸 即图像尺寸 而是视频的自然尺寸和一堆奇怪的结果
  • 批量使用 PowerShell 命令的问题

    我使用 PowerShell 命令从云下载 zip 文件 该命令在 PowerShell 和命令行中都能正常工作 但是 如果我将命令行中的命令插入批处理脚本中 则只会下载 html 为什么该命令在命令行中可以正常工作 但在批处理文件中却不能
  • GET 文件上传如何工作?

    有谁知道怎么办GWT文件上传有效吗 我知道关于FileUpload小部件以及如何使用它 我想知道它的内在机制是什么 我们无法从中获取文件内容FileUpload客户端中的小部件以及它如何发送到服务器 我用谷歌搜索但没有得到解决方案 提前致谢
  • 仅当活动未显示时才显示通知

    我有一个想要处理的后台任务 问题是 当任务完成时 我想调用一个新的 Activity 来向用户显示结果 前提是我的主 Activity 正在显示 否则我只想发送一个通知 以便用户可以看到该操作已完成 并且可以随时打开它 我正在考虑使用一个服
  • 强制从 s3 亚马逊服务器下载

    我一直在开发一个新的网络应用程序 它依赖于亚马逊S3服务器作为存储系统 以及代码点火器作为 PHP 框架 我需要在单击链接时强制下载文件 原始网址如下所示 http www our web com download do 1 jpg 它会生
  • 主构造函数内的 Scala 局部变量

    在 Scala 中如何在主构造函数中定义局部变量 我需要解决这个练习Scala for the impatient book 编写一个具有接受字符串的主构造函数的 Person 类 包含名字 空格和姓氏 例如 new 人 弗雷德 史密斯 提
  • Kafka 主题分区

    关于 Kafka 主题和分区的一个简单问题 假设以下场景 Producer1将数据写入Topic1 Producer2向Topic2写入数据 Consumer读取Topic 1和Topic 2的数据 Consumer2仅从Topic2读取数
  • S 的最长平衡子序列

    给出的问题 一串括号据说是 如果字符串中的左括号和右括号可以正确配对 则为平衡 例如 字符串 和 都是平衡的 而字符串 则不是 均衡 给定一个字符串S长度n由括号组成 假设你想找到最长的子序列S这是平衡的 使用动态规划 设计一个算法来找到最
  • 从 Resteasy 服务器返回文件

    你好 我想从 Resteasy 服务器返回一个文件 为此 我在客户端有一个链接 它使用 ajax 调用休息服务 我想在其余服务中返回文件 我尝试了这两段代码 但都没有按照我想要的方式工作 POST Path exportContacts p
  • 仅加载关系的 id(pluck)

    我有一个简单的应用程序 使用 Laravel 5 5 13 public function index return Pet all 这列出了所有宠物 我有多对多关系 其中许多用户可以拥有同一只宠物 宠物的人类家庭 我想加载这些用户 Doi
  • 文件夹如何工作?

    谁能解释一下怎么做foldr http haskell org ghc docs latest html libraries base Prelude html v foldr work 举这些例子 Prelude gt foldr 54
  • 如何在phar文件代码中获取.phar文件真实目录?

    我正在尝试创建一个php可执行文件 phar文件 来生成一些文件 我想知道如何获取phar文件的真实路径 在phar文件代码内 我想要做的是在phar文件的同一级别创建一个文件夹并在那里创建新文件 但是realpath DIR 似乎不起作用
  • Git:“工作树”到底是什么?与“工作目录”相同吗?

    我正在阅读大量有关 Git 的文档 最近我一直在寻找 工作树 概念 但我不明白 工作树 到底是什么 我找到了这样的描述 什么是工作树 https mijingo com blog what is the working tree in gi
  • 在 ActionScript 2.0 中按程序访问函数的参数列表

    我已经可以通过执行类似以下操作来获取类中的所有函数 for var member in obj if obj member instanceof Function var f Function obj member 有没有办法在动作脚本中获
  • Haskell、Lisp 和冗长[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 生产中的 Azure SDK 2.2:无法加载文件或程序集“msshrtmi”或其依赖项之一。该系统找不到指定的文件

    我在 StackOverflow 和其他网站上的其他几个线程中读到过有关此问题的信息 其他解决方案都没有解决我的问题 而且大多数都已经过时 引用了旧版本的 Azure SDK 我有一个部署到 Azure 的典型 Azure 网站角色 该角色