Где находится файл web.config при запуске веб-роли Azure в эмуляторе вычислений? - PullRequest
2 голосов
/ 07 октября 2011

Я создал пустой проект облачной службы Azure, а затем добавил туда веб-роль.В проекте роли есть файл web.config.

Когда я нажимаю F5, роль развертывается в эмуляторе вычислений.Я зашел в папку, в которой развернуты бинарные файлы ролей - там нет файла web.config.

Что происходит?Это потому, что я не установил «копировать всегда» в файле web.config?Какой web.config использует моя роль?

Ответы [ 3 ]

1 голос
/ 11 октября 2011

Если ваша роль настроена на режим Full IIS (для тех, кто не знает о разнице между размещенным веб-ядром и Full IIS, см. в этом блоге ), эмулятор вычислений должен развернуть веб-роль в IIS, где это можно посмотреть в IIS Manager. На моей машине (я использую Azure SDK 1.5) физический путь развернутой веб-роли - это каталог с исходным кодом.

0 голосов
/ 16 июля 2012

Несмотря на то, что предпочтительный способ хранения конфигурации в приложениях Windows Azure находится в файле ServiceConfiguration.cscfg, все еще существует много случаев, когда вы можете захотеть использовать обычный файл конфигурации .NET - особенно при настройке компонентов системы .NET или многоразового использования.рамки.В частности, всякий раз, когда вы используете диагностику Windows Azure, вам необходимо настроить DiagnosticMonitorTraceListener в файле конфигурации .NET.

При создании проекта веб-роли Visual Studio создает файл web.config для вашей конфигурации .NET.Хотя ваше веб-приложение может получить доступ к этой информации, ваш код RoleEntryPoint не может - потому что он не работает как часть вашего веб-сайта.Как упоминалось ранее, он выполняется в процессе, называемом WaIISHost.exe, поэтому он ожидает, что его конфигурация находится в файле с именем WaIISHost.exe.config.Поэтому, если вы создадите файл с этим именем в своем веб-проекте и установите для свойства «Копировать в выходной каталог» значение «Копировать всегда», вы обнаружите, что RoleEntryPoint может с радостью прочитать это.Это один из немногих случаев, когда я могу вспомнить, когда у вас будет два файла конфигурации .NET в одном проекте!

Вся информация взята из блога группы разработчиков Azure, и я успешно использовал это решение - http://blogs.msdn.com/b/windowsazure/

0 голосов
/ 12 октября 2011

Я думаю, что web.config скомпилирован в вашу сборку как контент в вашей среде разработки и не доступен напрямую, как в staging / prod. Вам не нужно использовать «Копировать всегда», если оно помечено как «Содержимое» и все, что вам нужно. Вы можете использовать Environment.CurrentDirectory для просмотра корневого пути в Интернете.

...