2014-10-10 4 views
0

После обновления моего проекта роли Azure Web с MVC4 и SDK 2.2 до SDK 2.4 и MVC5 запускается приложение только в эмуляторе, но не в облаке (пустая страница или «Страница не отображается »).Azure Web Role MVC5 не запускается в интегрированном режиме

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

Текущий web.config с MVC5 и SDK2.4:

<system.webServer> 
<validation validateIntegratedModeConfiguration="false" /> 
<modules> 
    <add name="PageSpeedModule" type="CheckMyBus.Web.Frontend.Modules.ProtectionModule" preCondition="managedHandler" /> 
</modules> 
<handlers> 
<remove name="ExtensionlessUrlHandler-Integrated-4.0" /> 
<remove name="OPTIONSVerbHandler" /><remove name="TRACEVerbHandler" /> 
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 
</handlers> 
<urlCompression doStaticCompression="true" doDynamicCompression="true" /> 
<httpCompression> 
    <dynamicTypes> 
    <add mimeType="application/json" enabled="true" /> 
    <add mimeType="application/json; charset=utf-8" enabled="true" /> 
    </dynamicTypes> 
</httpCompression> 
<staticContent> 
    <clientCache setEtag="false" /> 
</staticContent> 
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough" /> 
<rewrite> 
    <rules> 
    <rule name="RemoveIllegalCharacters"> 
     <match url="(.*)(&quot;|%22)(.*)" /> 
     <action type="Rewrite" url="{R:1}{R:3}" /> 
    </rule> 
    <rule name="RemoveTrailingSlashRule1" stopProcessing="true"> 
     <match url="(.*)/$" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="{R:1}" /> 
    </rule> 
    <rule name="Remove Version from static files" stopProcessing="true"> 
     <match url="(styles|scripts|images)/(.+);v[0-9]+\.(css|js|gif|png|jpg|ico)" /> 
     <action type="Rewrite" url="{R:1}/{R:2}.{R:3}" /> 
    </rule> 
    <rule name="EnforceLowerCase" stopProcessing="true"> 
     <match url="[A-Z]" ignoreCase="false" /> 
     <action type="Redirect" url="{ToLower:{URL}}" /> 
    </rule> 
    </rules> 
</rewrite> 
</system.webServer> 

Последняя web.config отлично работает с MVC4 и SDK2.2:

<system.webServer> 
<validation validateIntegratedModeConfiguration="false" /> 
<modules> 
    <add name="PageSpeedModule" type="CheckMyBus.Web.Frontend.Modules.ProtectionModule" preCondition="managedHandler" /> 
</modules> 
    <handlers> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> 
     <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> 

     <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> 
     <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 
    <remove name="ExtensionlessUrlHandler-Integrated-4.0" /><remove name="OPTIONSVerbHandler" /><remove name="TRACEVerbHandler" /><add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /></handlers> 
    <urlCompression doStaticCompression="true" doDynamicCompression="true" /> 
<httpCompression> 
    <dynamicTypes> 
    <add mimeType="application/json" enabled="true" /> 
    <add mimeType="application/json; charset=utf-8" enabled="true" /> 
    </dynamicTypes> 
</httpCompression> 
<staticContent> 
    <clientCache setEtag="false" /> 
</staticContent> 
<httpErrors errorMode="DetailedLocalOnly" existingResponse="PassThrough" /> 
<rewrite> 
    <rules> 
    <rule name="RemoveIllegalCharacters"> 
     <match url="(.*)(&quot;|%22)(.*)" /> 
     <action type="Rewrite" url="{R:1}{R:3}" /> 
    </rule> 
    <rule name="RemoveTrailingSlashRule1" stopProcessing="true"> 
     <match url="(.*)/$" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     </conditions> 
     <action type="Redirect" url="{R:1}" /> 
    </rule> 
    <rule name="Remove Version from static files" stopProcessing="true"> 
     <match url="(styles|scripts|images)/(.+);v[0-9]+\.(css|js|gif|png|jpg|ico)" /> 
     <action type="Rewrite" url="{R:1}/{R:2}.{R:3}" /> 
    </rule> 
    <rule name="EnforceLowerCase" stopProcessing="true"> 
     <match url="[A-Z]" ignoreCase="false" /> 
     <action type="Redirect" url="{ToLower:{URL}}" /> 
    </rule> 
    </rules> 
</rewrite> 
</system.webServer> 

Может все мне помочь?

+0

проверьте журнал событий роли Web, чтобы увидеть ошибки или предупреждения из платформы .NET. – astaykov

+0

Журнал событий не содержит ошибок и предупреждений. – user2209131

+0

Проблема решена! Обновление nuget для SDK 2.4 не обновило файл web.config в папке views. Там содержатся ссылки на предыдущую версию DLL MVC. – user2209131

ответ

0

После обновления до MVC5 вручную я не понимал, что в статье-объявлениях weg.config есть три ссылки на System.Web.Mvc. Это заставило веб-роль переделать навсегда.

Фиксация этого решена.

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