Ресурсы, которые не всегда загружаются в приложении MVC3, размещенном в IIS 7.5 - PullRequest
1 голос
/ 11 ноября 2011

У меня есть веб-приложение 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>

1 Ответ

0 голосов
/ 11 ноября 2011

Поскольку это иногда срабатывало, могло ли это работать, когда вы проходили аутентификацию? Если запрос не выполнен, убедитесь, что вы аутентифицированы, так что вы можете исключить его, по крайней мере,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...