我正在开发一个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.
我想这是IIS的一种保护.我的问题是:
>你知道为什么IIS正在过滤这些文件吗?
>您知道如何配置IIS以允许检索这些URL吗?
对我来说最重要的问题是:
>我需要为许多客户部署我的Web应用程序,所以我想以编程方式配置它.你知道它是否可以在Web应用程序中配置,而不是IIS正确配置?在其他情况下,我如何使用脚本或类似配置?
解决方法
好,
最后我不得不更改IIS设置,允许覆盖requestFiltering:
In file %systemroot%\System32\inetsrv\config\applicationHost.config change: <section name="requestFiltering" overrideModeDefault="Allow" />
然后我在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>