У меня есть веб-приложение MVC3, размещенное в IIS 7.5 на Windows Server 2008 R2.Сайт находится за аутентификацией Windows;подсказка входа отображается при посещении сайта.Затем происходит вход на второй уровень с использованием проверки подлинности с помощью форм.(Дело в том, чтобы скрыть сайт от общественности и т. Д.)или может не загружаться.Например, файл CSS или файл JavaScript может не загружаться.Если я нажму кнопку «Обновить» (иногда это занимает пару раз), отсутствующий файл загружается нормально.Если я продолжу нажимать кнопку «Обновить», я могу воспроизвести эту ошибку снова и снова.Иногда все ресурсы загружаются, а иногда нет.
- Если я удаляю часть проверки подлинности Windows, проблема исчезает - сайт загружается идеально каждый раз.
- Не знаюЯ не думаю, что это может быть проблема с разрешениями, поскольку ресурсы иногда загружаются правильно.
- Это не проблема кеширования, потому что это происходит до и после очистки кэша моего браузера.
- Этоне проблема браузера, потому что я воспроизвел ее в IE и Chrome.
Редактировать 1: Когда я просматриваю ресурс, который явно отсутствует, в Chrome я вижучто вместо ожидаемого содержимого CSS или JavaScript возвращается страница входа в систему.
Редактировать 2: Я разрешил анонимный доступ к папкам Css, Images и JavaScript, которые, конечно же,, исправляет проблему.Я все еще хотел бы знать, почему контент иногда проходил, а иногда нет.
Edit 3: Web.config ниже.Обратите внимание: я защищаю определенные действия, добавляя [Authorize]
к контроллеру или действию.Все остальное должно быть «открытым».
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<appSettings ... />
<connectionStrings ... />
<system.net>
<mailSettings>
<smtp ... />
</mailSettings>
</system.net>
<system.web>
<customErrors mode="Off"/>
<compilation debug="true" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</assemblies>
</compilation>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880"/>
</authentication>
</system.web>
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear />
<add value="Index"/>
</files>
</defaultDocument>
<validation validateIntegratedModeConfiguration="true"/>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<log4net xsi:noNamespaceSchemaLocation="http://csharptest.net/downloads/schema/log4net.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="..\Logs\Web.txt"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackups value="10"/>
<maximumFileSize value="10MB"/>
<layout type="log4net.Layout.SimpleLayout"/>
</appender>
<root>
<level value="ALL"/>
<appender-ref ref="FileAppender"/>
</root>
</log4net>
</configuration>