8

是否可以将文件夹中的所有文件扩展名映射到特定的 HttpHandler(假设它们的文件扩展名映射到 IIS 中的 aspnet_isapi.dll)?

我已将 FLV 扩展名映射到 IIS 中的 ASP.NET,并在我的 Web 应用程序中有一个名为Static的文件夹,其中包含以下文件:

  • 静态/索引.htm
  • 静态/MyFile.flv

索引文件是使用JW FLV 媒体播放器播放 FLV 的基本 html 页面。

在 Web.Config 中,在 HttpHanders 部分下,以下工作(FLV 已加载并成功播放):

<add verb="*" path="MyFile.flv" type="MyApp.PassthroughFileHandler, MyApp"/>

但这不是(无法加载视频):

<add verb="*" path="Static/*" type="MyApp.PassthroughFileHandler, MyApp"/>

我尝试了各种组合,但运气不佳。

理想情况下,我希望静态文件夹中的所有 FLV 都使用 PassthroughFileHandler,而不是必须在 web.config 中单独指定每个文件名。

4

3 回答 3

7

这是一种不同的方式,不需要“虚拟”文件夹和新的 web.config。

将此添加到您的主 web.config

<location path="static">
  <system.web>
    <httpHandlers>
      <add verb="GET,HEAD" path="*.*" 
           type="MyApp.PassthroughFileHandler, MyApp" />
    </httpHandlers>
  </system.web>    
</location>
于 2010-03-01T19:32:56.647 回答
6

尝试在该文件夹中放置第二个 web.config,例如:

<?xml version="1.0"?>
<configuration>
    <system.web>
      <httpHandlers>
        <!-- <clear/> -->
        <add verb="*" path="*.flv"
            type="WebApplication3.MyHandler, WebApplication3"/>
      </httpHandlers>
    </system.web>
</configuration>
于 2009-03-23T14:46:24.190 回答
0

我认为您需要进入 IIS(我假设您使用的是 II 6)并配置 ASP.NET 以处理通配符扩展。因为虽然您已经映射了 .flv 扩展名,但 IIS 将正常处理 Static/Index.htm 而不会将其传递给 ASP.NET。

http://professionalaspnet.com/archive/2007/07/27/Configure-IIS-for-Wildcard-Extensions-in-ASP.NET.aspx

您可能只为这个静态文件夹配置 IIS,尽管我从未尝试过。

于 2009-03-23T15:40:18.273 回答