我正在尝试为 IIS 7.5 网站配置默认网页。
请求过滤已打开。但是允许使用 .aspx 页面,我已将 default.aspx 设置为网站的默认页面。
如果我浏览到 localhost/default.aspx,我会按预期得到一个网页。
如果我浏览到本地主机/我得到
HTTP 错误 404.7 - 未找到 请求过滤模块配置为拒绝文件扩展名。
有任何想法吗?
我正在尝试为 IIS 7.5 网站配置默认网页。
请求过滤已打开。但是允许使用 .aspx 页面,我已将 default.aspx 设置为网站的默认页面。
如果我浏览到 localhost/default.aspx,我会按预期得到一个网页。
如果我浏览到本地主机/我得到
HTTP 错误 404.7 - 未找到 请求过滤模块配置为拒绝文件扩展名。
有任何想法吗?
看起来请求过滤实际上是在过滤空白文件名。因此,您必须将其添加到 web.config 中的请求过滤块中:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions allowUnlisted="true">
<remove fileExtension="." />
<add fileExtension="." allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
</configuration>
现在很明显,但我真的认为这是一个巨大的陷阱。
您可以通过添加解决:
<requestFiltering>
<fileExtensions allowUnlisted="true">
<remove fileExtension="." />
<add fileExtension="." allowed="true" />
</fileExtensions>
</requestFiltering>
到您的 Web.Config 文件
您可以通过将文件扩展名添加到 IIS 的请求过滤模块中来解决此问题。
请务必从页面上的按钮中删除任何PostBackURL="MyPage.aspx"。我的猜测是,当包含 postbackurl 时,IIS 认为它将页面作为文件获取。它默认拒绝 .aspx 文件类型。您可以在页面错误中看到这一点。
不好:创建 404.7(注意 PostBackURL)
<asp:FileUpload runat="server" ID="uplReplaceFile" ToolTip="Update this file" />
<asp:Button runat="server" PostBackUrl="MyPage.ascx" ID="bnHiddenFileUploadListener" OnClick="bnHiddenFileUploadListener_OnClick" />
好:没有错误
<asp:FileUpload runat="server" ID="uplReplaceFile" ToolTip="Update this file" />
<asp:Button runat="server" ID="bnHiddenFileUploadListener" OnClick="bnHiddenFileUploadListener_OnClick" />