自定义服务器控件和通用Web处理程序

时间:2012-07-11 16:17:55

标签: c# asp.net

我正在创建一个自定义服务器控件,它将文件异步上传到服务器。 此解决方案使用flash元素将文件发布到Generic Web handler aka ashx,然后将发布的文件保存在所需位置。

它工作很好,但是使用这种方法我需要在每个项目中创建ashx文件,可能是为了处理flash元素中的帖子。

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

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

感谢。

1 个答案:

答案 0 :(得分: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 infrastructure

[assembly: WebActivator.PreApplicationStartMethod(typeof(MyControl.StartUp), "PreApplicationStart")]