2017-01-19 1 views
1

У меня есть приложение .NET, которое является платформой сервера, и оно размещено в IIS, и оно начинается, когда работает IIS.Как отлаживать код, выполняемый при запуске приложения, если приложение размещено в IIS и запускается при выполнении IIS?

Чтобы отладить инфраструктуру, я присоединяюсь к процессу клиента с помощью Visual Studio. Он работает для нормальной отладки, но теперь я хочу отлаживать раздел, когда среда загружает свою конфигурацию из xml-файлов (обрабатывается кодом C#). Он делает это только один раз, когда приложение запускается точно так же, как начинается IIS. Я не быстрее, чем IIS с приложением моего решения.

Если я привяжу фреймворк к клиентскому процессу, тогда сбросьте IIS, отладчик будет отсоединен.

Как справиться с такой проблемой?

Плохое решение: единственный способ работы - установить очень длинный Thread.Sleep в начале приложения, а затем быстро подключиться.

+0

Что вы подразумеваете под «сбросом IIS»? Отделяется ли отладчик, если вы просто перерабатываете пул приложений? – Crowcoder

+0

@Crowcoder да. Если вы перейдете в IIS GUI в верхнем правом углу, у вас будет кнопка RESTART. – Yoda

+0

Это отличается от утилизации пула приложений. – Crowcoder

ответ

1

Попробуйте изменить проект на использование «IIS Express» вместо Local IIS. Когда вы запустите приложение, Visual Studio запустит IIS Express, а отладчик уже подключен к службе.

Вы можете изменить настройку, щелкнув правой кнопкой мыши по проекту => выберите «Свойства» => щелкните вкладку «Веб» => найдите «IIS Express» в выпадающем списке в разделе «Серверы».

+0

Хорошо, вы знаете, как я могу выбрать, какой IIS я хочу использовать (завтра у меня будет доступ к машине с кодом и инструментами), но я подумал, что, возможно, это стандартный трюк. Также клиентское приложение работает на том же IIS, что и в Framework. – Yoda

+0

В моем первоначальном комментарии я написал, как настроить сервер на использование IIS Express. Когда вы это сделаете, он откроет новый URL-адрес сервера (скорее всего, это будет localhost и случайный номер порта, например: http: // localhost: 1236 - вы просто укажете своего клиента на этот URL-адрес, и он должен работать, предполагая, что он находится на той же машине) – lmms90

+0

@Yoda, что относительно этой проблемы? Не могли бы вы получить полезную информацию из предложения lmms90? –

2

Добавить

System.Diagnostics.Debugger.Launch(); 

к Application_Start. Вы получите всплывающее окно с вопросом, хотите ли вы отлаживать веб-сайт, и если вы нажмете OK, вы попадете в Visual Studio в режиме отладки, остановитесь на этой строке.

 Смежные вопросы

  • Нет связанных вопросов^_^