是否可以将文件夹中的所有文件扩展名映射到特定的HttpHandler(假设其文件扩展名已映射到IIS中的aspnet_isapi.dll)?
我在IIS中将FLV扩展映射到ASP.NET,并在我的Web应用程序中有一个名为 Static 的文件夹,其中包含以下文件:
索引文件是使用JW FLV Media Player播放FLV的基本html页面。
在Web.Config中,在HttpHanders部分下,以下工作(加载FLV并成功播放):
<add verb="*" path="MyFile.flv" type="MyApp.PassthroughFileHandler, MyApp"/>
但这不是(视频无法加载):
<add verb="*" path="Static/*" type="MyApp.PassthroughFileHandler, MyApp"/>
我尝试了各种组合,没有太多运气。
理想情况下,我希望能够让Static文件夹中的所有FLV都使用PassthroughFileHandler,而不必在web.config中单独指定每个文件名。
答案 0 :(得分:7)
这是一种不需要“虚拟”文件夹和新web.config的不同方法。
将其添加到您的主web.config
<location path="static">
<system.web>
<httpHandlers>
<add verb="GET,HEAD" path="*.*"
type="MyApp.PassthroughFileHandler, MyApp" />
</httpHandlers>
</system.web>
</location>
答案 1 :(得分:6)
尝试在该文件夹中放置第二个web.config,例如:
<?xml version="1.0"?>
<configuration>
<system.web>
<httpHandlers>
<!-- <clear/> -->
<add verb="*" path="*.flv"
type="WebApplication3.MyHandler, WebApplication3"/>
</httpHandlers>
</system.web>
</configuration>
答案 2 :(得分:0)
我认为您需要进入IIS(我假设您正在使用II 6)并配置ASP.NET来处理通配符扩展。因为虽然您已映射.flv扩展名,但IIS通常会处理Static / Index.htm而不会将其传递给ASP.NET。
您可以为此静态文件夹配置IIS,但我从未尝试过这个。