1

我正在创建一个自定义服务器控件,它将文件异步上传到服务器。此解决方案使用 Flash 元素将文件发布到通用 Web 处理程序(又名 ashx),然后将发布的文件保存在所需位置。

它工作得很好,但是通过这种方法,我确实需要在每个项目中创建 ashx 文件,可能会处理来自 flash 元素的帖子。

我想要实现的是完全封装的服务器控件,它将使用它自己的 ashx(或任何可以替换它的东西)处理程序来上传文件。

有可能吗?任何想法都会受到欢迎。

谢谢。

4

1 回答 1

0

您可以在包含控件的类库中包含处理程序,然后仅使用以下<httpHandlers>部分在 web.config 中注册它:

<configuration>
   <system.web>
      <httpHandlers>
         <add verb="*" 
              path="upload.ashx" 
              type="MyControl.MyUploadHandler.New, MyControl" />
     </httpHandlers>
   <system.web>
</configuration>

如果您正在使用 IIS 7 集成管道模式到该<handlers>部分:

<system.webServer>
    <handlers>
        <add name="UploadHandler" 
             verb="*" 
             path="upload.ashx" 
             type="MyControl.MyUploadHandler.New, MyControl" />
    </handlers>
</system.webServer>

如果您使用的是 ASP.NET 4.0,您可以查看 PreApplicationStartMethod 基础结构,它允许您动态注册处理程序:

[assembly: WebActivator.PreApplicationStartMethod(typeof(MyControl.StartUp), "PreApplicationStart")]
于 2012-07-11T16:21:07.793 回答