【问题标题】:Adding HttpHandler to MVC application将 HttpHandler 添加到 MVC 应用程序
【发布时间】:2013-11-08 00:22:42
【问题描述】:

我有一个 MVC4 应用程序,我添加了一个 HttpHandler

<system.web>
    ...
    <httpHandlers>
        <add path="Files" verb="*" type="MyHttpHandler" />
    </httpHandlers>
</system.web>

我还忽略了RegisterRoutes 中的相关路径,因此对“文件”的请求不会由 MVC 处理:

routes.IgnoreRoute("Files/{*pathInfo}");

问题是MyHttpHandler 仅针对“文件”的请求调用,而不是针对其任何子文件夹或子文件夹。

我尝试过使用 &lt;location&gt; 元素,但要让它工作意味着您将在“路径”属性中硬编码应用程序的虚拟路径(例如,&lt;location path='MyApp\Files'&gt;)。

什么是允许“文件”及其任何子文件夹(以及这些文件夹的子文件夹等)的所有请求路由到MyHttpHandler的正确方法?

【问题讨论】:

    标签: asp.net-mvc httphandler


    【解决方案1】:

    从头开始...&lt;location&gt; 似乎工作正常。不过,您需要 &lt;web&gt;&lt;webServer&gt; 条目以确保它适用于 IIS 和 Visual Studio 开发服务器。例如:

    <location path="Files">`
        <system.webServer>
            <handlers>
                <add name="MyHandler" path="*" verb="*" type="MyHttpHandler" />
            </handlers>
        </system.webServer>
        <system.web>
            <httpHandlers>
                <add path="*" verb="*" type="MyHttpHandler" />
            </httpHandlers>
        </system.web>
    </location>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多