我正在尝试运行使用某些Azure SDK(和存储)api的web应用程序,但是当我尝试运行它时,总是会出现此运行时错误。
我在装有Visual Studio的Windows 7盒子上安装了该项目,并安装了一堆SDK,该项目可以运行,但是在这台新Win10机器上,我正在启动它无法正常工作。
msshrtmi.dll存在于C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\runtimes\base\x86
上的新计算机上(以及x64和runtimes \ net45 \ base中),但在旧计算机上也存在
c:\windows\Microsoft.net\assembly\GAC_XX\msshrtmi
,我可以看到它是从IIS加载的。
如果我手动将msshrtmi.dll
复制到我的bin文件夹中,则该项目可以正常运行。我也知道此文件是Microsoft.WindowsAzure.ServiceRuntime
格式所必需的。
在这台新机器上,我试图避免安装Visual Studio,而仅使用Jetbrains Rider来构建和运行项目。它可以很好地构建项目,但是由于这个原因它现在无法运行。
该文件真的需要在我的Windows \ microsoft.NET文件夹中吗?什么安装程序将其放在那里?还是应该将msshrtmi.dll
作为对我项目的依赖项?
有其他解决方案吗?
对于这个类似的问题,我没有碰运气就尝试了很多其他答案。
编辑:在ISS Express 8和10上尝试过
答案 0 :(得分:1)
有几种方法可以解决此问题:
1。手动将msshrtmi.dll
复制到您的项目中。例如,在\bin
旁边的WindowsAzure.Storage.dll
文件夹中。
2。在服务器上安装Windows Azure SDK。
3。从app.config
更改一些配置。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<NetFx40_LegacySecurityPolicy enabled="false" />
</runtime>