Ускоритель Azure для веб-ролей и службы HostingEnvironment aspNetCompatibilityEnabled="true"
Я не уверен, относится ли эта проблема к ускорителю для веб-ролей (WAAWR: http://waawebroles.codeplex.com/)
Изменить: я подтвердил, что эта ошибка появляется только в моем приложении WAAWR - если я разверну тот же код, что и в автономном веб-ролик, эта ошибка не выдается.
Я пытаюсь запустить WCF Routing / clean url для приложения, которое развертывается через WAAWR. Для этой функции требуется режим совместимости asp.net. Вот мой раздел конфигурации:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<baseAddressPrefixFilters>
<add prefix="http://api.mydomain.com"/>
</baseAddressPrefixFilters>
</serviceHostingEnvironment>
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
</system.serviceModel>
Я застрял на этой ошибке в течение нескольких часов:
System.IO.FileLoadException: имя файла: \?\C:\Resources\directory\XXXXXXXXXXXXXXXXXXXXXXXXXXXXX \web.config Номер строки: 74 Ошибка: этот раздел конфигурации нельзя использовать по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка либо по умолчанию (overrideModeDefault="Deny"), либо устанавливается явно с помощью тега местоположения с помощью overrideMode="Deny" или устаревшего allowOverride="false". в Microsoft.Web.Administration.Interop.IAppHostAdminManager.GetAdminSection(String bstrSectionName, String bstrPath) в Microsoft.Web.Administration.WebConfigurationManager.GetSectionInternal(String siteName, String virtualPath, String sectionPath, String sectionPath,
Сначала я подумал, что приложения, которые вы развертываете через хост веб-роли, были подкаталогами / виртуальными каталогами, поэтому я бросил эту конфигурацию в файл.config самого приложения хоста развертывания, но это не помогло. Я удаленно подключился к рабочему столу, чтобы посмотреть, что происходит, и похоже, что каждое приложение, развернутое через хост, является отдельным приложением под IIS. Кроме того, когда вы исследуете приложение из диспетчера IIS, приложения не находятся на том же диске, что и узел развертывания. Так что я не уверен, почему эта ошибка выбрасывается.
Есть идеи?
1 ответ
Нашел мой ответ здесь:
http://cennest.wordpress.com/2010/09/20/azure-tip-wcf-4-0-servicerouting-in-azure/
Не уверен, почему это работает, найдите нормальную роль, и вы должны добавить объявление раздела для дочернего приложения - но рад, что это работает!