我在Windows Server 2008 R2上的IIS 7.5中托管了一个MVC3 Web应用程序。该站点支持Windows身份验证;访问该站点时会显示登录提示。然后使用表单身份验证进行二级登录。 (重点是将网站隐藏起来,等等。)
如果我转到该站点,请传递Windows身份验证登录提示,然后查看登录页面(Forms Authentication),某些资源可能加载也可能不加载。例如,可能无法加载CSS文件或JavaScript文件。如果我点击刷新(有时需要几次),丢失的文件就可以了。如果我不断刷新,我可以一遍又一遍地重现这个错误。有时会加载所有资源,有时则不加载。
修改1:当我查看显然缺少的资源时,在Chrome中,我看到的是返回登录页面而不是我期望的CSS或JavaScript内容。
编辑2:我已启用对Css,图像和JavaScript文件夹的匿名访问,这当然可以解决问题。我仍然想知道为什么内容有时会出现,有时却没有。
编辑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>
答案 0 :(得分:0)
因为它有时会起作用,所以当你进行身份验证时它是否有效? 当请求失败时,请确认您已通过身份验证,因此至少可以将其排除在外