Сегодня я просто профилировал свое приложение WCF, используя профилировщик визуальной студии в режиме Instrumentation. Позже мне нужно было опубликовать на моем веб-сервере, и вдруг я получил сообщение об ошибке, указывающее, что путь к файлу 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
Описание: Произошла ошибка при обработке файла конфигурации который необходим для этого запроса. Проверьте конкретные сведения об ошибке ниже и соответствующим образом измените свой файл конфигурации.
Сообщение об ошибке Parser: файл или сборка 'Microsoft.VisualStudio.Enterprise.AspNetHelper, Version = 14.0.0.0, Культура = нейтральная, PublicKeyToken = "или одна из ее зависимостей не найдено. Система не может найти указанный файл.
Ошибка источника:
Ошибка приложения на сервере. Из-за текущего пользовательского настройки ошибок для этого приложения, сведения о приложении можно удаленно удалять (по соображениям безопасности). Однако они могут просматриваться браузерами, запущенными на локальном сервере.
Исходный файл: C:\www\web.config Линия: 52
Загрузка трассировки: может быть определена со следующей информацией, почему сборка Microsoft.VisualStudio.Enterprise.AspNetHelper, Версия = 14.0.0.0, Культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a не удалось загрузить.
WRN: Регистрация привязки сборки отключена. Вы можете включить сборку протоколирования удалить сбой, удалить значение реестра [HKLM\Software\Microsoft \ Fusion! EnableLog] (DWORD) до 1 набора. Примечание. Регистрация привязки к сборке ошибка приводит к некоторой потере производительности. Вы можете повернуть это отключить, удалить значение реестра [HKLM\Software\Microsoft \ Fusion! EnableLog].