Dan*_*lba 7 html iis asp.net-mvc asp.net-mvc-2
我正在开发一个Web应用程序并使用IIS运行它.我的应用程序是文件服务器.我需要在Web浏览器中可视化文件,我在查看某些文件或目录时遇到了一些麻烦.
例如,我无法查看具有.cs扩展名的文件或调用的目录内容bin.Web服务器为这些URL返回404:
Server Error
HTTP Error 404 - File or directory not found.
Description: The resource you are looking for might have been removed,
had its name changed, or is temporarily unavailable.
Server Version Information: Internet Information Services 7.0.
Run Code Online (Sandbox Code Playgroud)
我想这是IIS的一种保护.我的问题是:
对我来说最重要的问题是:
Dan*_*lba 10
好,
最后我不得不更改IIS设置,允许覆盖requestFiltering:
In file %systemroot%\System32\inetsrv\config\applicationHost.config change:
<section name="requestFiltering" overrideModeDefault="Allow" />
Run Code Online (Sandbox Code Playgroud)
然后我在Web.config中使用了以下配置:请注意,现在Web服务器中的所有文件都不受保护.您需要设置规则以保护bin目录,以及代码文件或任何您想要的内容.
<system.webServer>
<security>
<!-- Very important, the IIS configuration must have the
overrideModeDefault to allow in the file
%systemroot%\System32\inetsrv\config\applicationHost.config -->
<!-- section name="requestFiltering" overrideModeDefault="Allow" /> -->
<requestFiltering>
<fileExtensions allowUnlisted="true">
<remove fileExtension=".asa" />
<remove fileExtension=".asax" />
<remove fileExtension=".ascx" />
<remove fileExtension=".master" />
<remove fileExtension=".skin" />
<remove fileExtension=".browser" />
<remove fileExtension=".sitemap" />
<remove fileExtension=".config" />
<remove fileExtension=".cs" />
<remove fileExtension=".csproj" />
<remove fileExtension=".vb" />
<remove fileExtension=".vbproj" />
<remove fileExtension=".webinfo" />
<remove fileExtension=".licx" />
<remove fileExtension=".resx" />
<remove fileExtension=".resources" />
<remove fileExtension=".mdb" />
<remove fileExtension=".vjsproj" />
<remove fileExtension=".java" />
<remove fileExtension=".jsl" />
<remove fileExtension=".ldb" />
<remove fileExtension=".dsdgm" />
<remove fileExtension=".ssdgm" />
<remove fileExtension=".lsad" />
<remove fileExtension=".ssmap" />
<remove fileExtension=".cd" />
<remove fileExtension=".dsprototype" />
<remove fileExtension=".lsaprototype" />
<remove fileExtension=".sdm" />
<remove fileExtension=".sdmDocument" />
<remove fileExtension=".mdf" />
<remove fileExtension=".ldf" />
<remove fileExtension=".ad" />
<remove fileExtension=".dd" />
<remove fileExtension=".ldd" />
<remove fileExtension=".sd" />
<remove fileExtension=".adprototype" />
<remove fileExtension=".lddprototype" />
<remove fileExtension=".exclude" />
<remove fileExtension=".refresh" />
<remove fileExtension=".compiled" />
<remove fileExtension=".msgx" />
<remove fileExtension=".vsdisco" />
</fileExtensions>
<hiddenSegments>
<remove segment="web.config" />
<remove segment="bin" />
<remove segment="App_code" />
<remove segment="App_GlobalResources" />
<remove segment="App_LocalResources" />
<remove segment="App_WebReferences" />
<remove segment="App_Data" />
<remove segment="App_Browsers" />
</hiddenSegments>
</requestFiltering>
</security>
...
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
当您安装.NET Framework并注册ASP.NET时,默认情况下会告诉IIS不要提供这些文件.如果你真的想要这个,你需要修改IIS中的请求过滤部分.
下面的示例显示了如何启用.cs扩展:
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<remove fileExtension=".cs" />
<add fileExtension=".cs" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)