今天我只是在 Instrumentation 模式下使用 Visual Studio 的分析器分析我的 WCF 应用程序。后来我需要发布到我的 Web 服务器,突然我收到一条错误消息,提示找不到 Microsoft.VisualStudio.Enterprise.AspNetHelper 文件路径。
当我查看我的 web.config 时,我看到分析会话添加了以下几行。
<system.web>
<compilation targetFramework="4.0" debug="true" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter,
Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
<runtime>
<generatePublisherEvidence enabled="false"/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.VisualStudio.Enterprise.AspNetHelper" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<codeBase version="12.0.0.0" href="file:///C:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio%2012.0/Common7/IDE/PrivateAssemblies/Microsoft.VisualStudio.Enterprise.AspNetHelper.DLL"/>
</dependentAssembly></assemblyBinding></runtime>
<appSettings>
<!--<add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools\vsinstr.exe"/>-->
</appSettings></configuration>
很明显,它会在服务器上查找一些 DLL,但是由于未安装 VS,因此该路径在服务器上无效,因此会引发异常。为什么会发生这种情况以及如何避免在 web.config 中添加这些行?每次我进行分析会话时删除这些行会非常麻烦。
更新:这个问题也发生在 VS2015 上。如果您启动 VS 分析工具,它会在 web.config 中添加一行
> <add
> key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation"
> value="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team
> Tools\Performance Tools\vsinstr.exe"/> <dependentAssembly>
> <assemblyIdentity name="Microsoft.VisualStudio.Enterprise.AspNetHelper"
> culture="neutral"/>
> <codeBase version="14.0.0.0" href="file:///C:/Program%20Files%20(x86)/Microsoft%20Visual%20Studio%2014.0/Common7/IDE/PrivateAssemblies/Microsoft.VisualStudio.Enterprise.AspNetHelper.DLL"/></dependentAssembly>
如果您发布到服务器,您将在下面收到此错误
Configuration error
说明:处理此请求所需的配置文件时出错。检查下面的特定错误详细信息并适当地修改您的配置文件。
解析器错误消息:文件或程序集 'Microsoft.VisualStudio.Enterprise.AspNetHelper,版本 = 14.0.0.0,文化 = 中性,PublicKeyToken =“或其依赖项之一未找到。系统找不到指定的文件。
源错误:
服务器上发生应用程序错误。由于此应用程序的当前自定义错误设置,可以远程显示应用程序错误的详细信息(出于安全原因)。但是,它们可以被本地服务器上运行的浏览器查看。
源文件:C:\www\web.config 行:52
加载跟踪程序集:可以通过以下信息确定,为什么无法加载程序集 Microsoft.VisualStudio.Enterprise.AspNetHelper, Version = 14.0.0.0, Culture = Neutral, PublicKeyToken = b03f5f7f11d50a3a。
警告:程序集绑定日志记录已关闭。您可以启用记录程序集绑定失败,删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 为 1 组。注意:程序集绑定日志记录错误会导致一定的性能损失。可以关闭这个功能,去掉注册表值【HKLM\Software\Microsoft\Fusion!启用日志]。