Добавлен профилировщик Visual Studio 2013/2015/2017 Не публикуемые строки в web.config?

Сегодня я просто профилировал свое приложение 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].

Ответ 1

В моем случае это проблема с профилировщиком visual studio. Он проверяет локальный путь EXE в web.config. Я прокомментировал приведенные ниже строки в файле web.config и решил проблему.

<!--<compilation debug="true" targetFramework="4.5" assemblyPostProcessorType="Microsoft.VisualStudio.Enterprise.Common.AspPerformanceInstrumenter, Microsoft.VisualStudio.Enterprise.AspNetHelper, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>-->
<!--<add key="Microsoft.VisualStudio.Enterprise.AspNetHelper.VsInstrLocation" value="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Performance Tools\vsinstr.exe"/>-->

Ответ 2

У меня возникла проблема: невозможно установить точку останова после использования профилировщика. Профилировщик изменил web.config с вышеупомянутыми 2 линиями. Закомментируйте ключевую строку и измените строку компиляции на оригинальную:

<compilation defaultLanguage="c#" debug="true" targetFramework="4.5.2">

проблема исчезла, я могу установить точку останова и пошаговую отладку.