Отладка символов в режиме релиза - PullRequest
5 голосов
/ 12 ноября 2009

На веб-сайте ASP.NET 2.0 я регистрирую детали необработанных исключений. Я хотел бы записать имя файла источника и номер строки, но я не получаю это в трассировке стека, когда происходит исключение. Причина этого заключается в том, что в настройках компиляции web.config (это рабочий сайт) у меня есть debug = "false", поэтому на сервере не создаются файлы PDB. Есть ли способ заставить ASP.NET генерировать файлы символов отладки в режиме выпуска? Я не хочу прекомпилировать сайт.

Ответы [ 2 ]

5 голосов
/ 12 ноября 2009

ОК, я нашел ответ.Вы можете установить debug = "false" для получения оптимизаций, а затем установить compilerOptions = "/ debug: pdbonly" в настройках компилятора system.codedom для получения символов.Вот соответствующие выдержки из web.config:

<system.web>
  ....
  <compilation debug="false" defaultLanguage="c#">
  ...
  </compilation>
</system.web>
<system.codedom>
  <compilers>
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
        type="Microsoft.CSharp.CSharpCodeProvider,System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
        compilerOptions="/debug:pdbonly">
      <providerOption name="CompilerVersion" value="v3.5"/>
      <providerOption name="WarnAsError" value="false"/>
    </compiler>
    ...
  </compilers>
</system.codedom>
1 голос
/ 12 ноября 2009

Если я что-то упустил, разница между отладкой и сборкой релиза заключается в оптимизации. Вы должны иметь возможность создать обычный отладочный двоичный файл с помощью pdb и убедиться, что все параметры оптимизации включены в настройках проекта. Afaik, если нет исключения для загрузки файла pdb и т. Д ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...