我正在创建一个自定义服务器控件,它将文件异步上传到服务器。 此解决方案使用flash元素将文件发布到Generic Web handler aka ashx,然后将发布的文件保存在所需位置。
它工作很好,但是使用这种方法我需要在每个项目中创建ashx文件,可能是为了处理flash元素中的帖子。
我想要实现的是完全封装的服务器控件,它将使用它自己的ashx(或任何可以替换它的)处理程序来上传文件。
有可能吗?任何想法都会受到欢迎。
感谢。
答案 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")]