【发布时间】:2011-07-23 04:50:12
【问题描述】:
提前非常感谢。运行 ASP.NET 开发服务器时,一切正常。但是,当我将我的 asp.net 应用程序部署到生产服务器(IIS 7.0 集成模式,全新安装)时,我的 web.config 文件中的位置标记将被忽略。
举个例子:我正在使用表单身份验证,当用户到达我的 login.aspx 页面时,没有加载外部 css 和 js 文件......即使我已经指定这些文件应该可用给所有用户(无论是否经过身份验证)。 但是,一旦用户登录,文件实际上会加载。
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
</authentication>
<authorization>
<deny users="?" /> <!-- Restrict anonymouse user access -->
</authorization>
我的 css 文件例外...
<location path="Styles/xtools.css">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
我已验证 css 文件的路径是准确的。有什么建议吗?
谢谢,--丹
--编辑 忘了提一下,我也尝试在目标文件夹中创建一个 web.config 文件......仍然无法正常工作。
【问题讨论】:
-
IIS 使用的计算机帐户是否对包含 CSS 和 JS 文件的文件夹具有安全权限。 ASP.NET 开发服务器在当前用户帐户下运行,对于开发人员而言,该帐户几乎总是对运行它的机器上的所有内容拥有权限。 IIS 使用的用户帐户(由于它使用表单身份验证,因此您没有使用 Active Directory 或计算机帐户来运行)通常受到相当限制,可能需要被授予对文件夹的访问权限。
-
即使在用户登录后,这不会阻止文件加载吗? -- 用户登录后会加载文件。(抱歉,忘记提及,编辑帖子以反映)
-
更新——这些文件夹实际上确实有 IIS_USRS 组/用户名,可以在其安全选项卡中完全控制。还是不行。
-
我认为您也应该尝试授予匿名帐户 IUSR 的访问权限。检查这个:forums.iis.net/p/1173012/1961218.aspx
标签: asp.net web-config location