我有一个运行时错误,仅当我在 Compute Emulator 中运行我的 Web 应用程序时才会发生:
无法加载文件或程序集“Microsoft.VisualStudio.Profiler”或其依赖项之一。试图加载格式不正确的程序。
在 IIS 中正常运行 Web 应用程序时,我没有收到此错误。
SDK版本:2.0
我从哪里开始解决这个问题?
我有一个运行时错误,仅当我在 Compute Emulator 中运行我的 Web 应用程序时才会发生:
无法加载文件或程序集“Microsoft.VisualStudio.Profiler”或其依赖项之一。试图加载格式不正确的程序。
在 IIS 中正常运行 Web 应用程序时,我没有收到此错误。
SDK版本:2.0
我从哪里开始解决这个问题?
您使用的是 IISExpress 还是完整的 IIS?这可以通过 WebRole 的属性选项卡进行配置:
问题是 Visual Studio 是 32 位的,所以(我的猜测)它的组件。解决此问题的最简单方法是使用IIS Web Server
(完整的 IIS)而不是 IIS Express。应用程序池默认设置为使用操作系统位数,因此在 64 位操作系统上,您有一个 64 位应用程序池。当您使用完整的 IIS 时,很容易更改Application Pool Defaults
和启用 32 位应用程序。这将强制用于本地部署的应用程序池在 32 位下运行,并将加载 VS Profiling 程序集。
以下是如何在 IIS 上启用 32 位 Web 应用程序的一般说明
您还可以在applicationhost.config
文件中为 IIS Express 设置应用程序池默认值。它位于%USERPROFILE%\Documents\IISExpress\Config
。有关如何手动添加enable32BitAppOnWin64
applicationhost.config,请参阅后面的链接。
我很想对此作出解释。
我不得不Microsoft.VisualStudio.Profiler.dll
从我的bin
目录中手动删除。我不知道它是如何到达那里的,也没有任何引用它(我使用 NDepend 来检查这个)。删除后,我不再收到错误消息。清理并没有删除 dll。