<httpHandlers>的配置和使用

本文详细介绍了如何通过自定义httpHandlers将百度编辑器的前台处理和后台处理进行分离,将.ashx页面单独编译成dll,从而解决了无法直接编译.ashx文件的问题。通过配置文件实现对特定.ashx文件的指向处理,使得逻辑处理更加清晰,易于维护。

   前两天 领导让改了一个控件,就是 百度编辑器的  前台处理和后台处理分开,简单的说,是把 .ashx的页面单独编译成dll ,

前后想了想,.ashx文件又没有cs代码,怎么能编译?尝试了几次没能成功,后来用了这么一个办法,问题成功解决!

  思路:通过 httpHandlers 自定义 http 访问时做的处理,当前台的JS 访问到 .ashx文件时,我就把他指向一个类去处理,类可以编译成dll ,所有问题就解决了。

具体代码: config 配置

     <system.web>
    <httpHandlers>
      <add verb="*" path="imageUp.ashx" type="UploadLyp.net.imageUp,UploadLyp" validate="false"/>
      <add verb="*" path="fileUp.ashx" type="UploadLyp.net.fileUp,UploadLyp" validate="false"/>
      <add verb="*" path="getContent.ashx" type="UploadLyp.net.getContent,UploadLyp" validate="false"/>
      <add verb="*" path="getMovie.ashx" type="UploadLyp.net.getMovie,UploadLyp" validate="false"/>
      <add verb="*" path="getRemoteImage.ashx" type="UploadLyp.net.getRemoteImage,UploadLyp" validate="false"/>
      <add verb="*" path="imageManager.ashx" type="UploadLyp.net.imageManager,UploadLyp" validate="false"/>
      <add verb="*" path="scrawlUp.ashx" type="UploadLyp.net.scrawlUp,UploadLyp" validate="false"/>
    </httpHandlers>

 <system.web>

简单解释一下,verb="*"   是任何的 访问请求

                         path="imageUp.ashx"   这是具体访问的 类型,也可以是 *.jpg,*.rar

                         type="UploadLyp.net.getRemoteImage,(这里有逗号)UploadLyp"   // 逗号前是  命名空间+类名字,逗号以后是  编译成的 dll 名称

                         validate="false"//  这个我也不是很清楚,应该是不验证的意思

配置好以后,我们就可以写类了,把 。ashx要处理的逻辑全都放在 类里面去执行,但是类里必须要继承一个类 IHttpHandler ,要有 public void ProcessRequest(HttpContext context){} 

 和 public bool IsReusable
        {
            get
            {
                return false;
            }
        }

这样就可以处理你的逻辑了



请帮我分析一下以下代码的作用:<?xml version="1.0" encoding="UTF-8"?> <configuration> <appSettings> <add key="version" value="1.0.9.x" /> <add key="release" value="2014-09-01" /> <add key="mbrImage" value="" /> <add key="venImage" value="" /> <add key="logPath" value="" /> <add key="cardUIdLen" value="8" /> <add key="acsPwdLen" value="4" /> <add key="sysPwdMinLen" value="8" /> <add key="importFilePath" value="~/imports" /> <add key="serviceTimeout" value="1000" /> <add key="Telerik.Skin" value="Office2007" /> <add key="vs:EnableBrowserLink" value="false" /> </appSettings> <connectionStrings> <add name="dbConnStr" connectionString="Data Source=localhost;Initial Catalog=JHICC_DB;Persist Security Info=True;User ID=sa;Password=27745518" providerName="System.Data.SqlClient" /> <add name="TestdbConnStr" connectionString="Data Source=localhost;Initial Catalog=TemporaryMbr;Persist Security Info=True;User ID=sa;Password=27745518" providerName="System.Data.SqlClient" /> </connectionStrings> <system.web> <compilation debug="true" targetFramework="4.0"> <assemblies> <add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> <add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> </assemblies> <buildProviders> <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" /> </buildProviders> </compilation> <pages> <controls> <add tagPrefix="telerik" namespace="Telerik.Web.UI" assembly="Telerik.Web.UI" /> </controls> </pages> <httpHandlers> <add path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" validate="false" /> <add path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" validate="false" /> <add path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" validate="false" /> <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" /> <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" /> <add path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" verb="*" /> </httpHandlers> <httpModules> <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" /> <add name="RadCompression" type="Telerik.Web.UI.RadCompression" /> </httpModules> <identity impersonate="false" /> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules runAllManagedModulesForAllRequests="true"> <remove name="RadUploadModule" /> <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" preCondition="integratedMode" /> <remove name="RadCompression" /> <add name="RadCompression" type="Telerik.Web.UI.RadCompression" preCondition="integratedMode" /> </modules> <handlers> <remove name="ChartImage_axd" /> <add name="ChartImage_axd" path="ChartImage.axd" type="Telerik.Web.UI.ChartHttpHandler" verb="*" preCondition="integratedMode" /> <remove name="Telerik_Web_UI_SpellCheckHandler_axd" /> <add name="Telerik_Web_UI_SpellCheckHandler_axd" path="Telerik.Web.UI.SpellCheckHandler.axd" type="Telerik.Web.UI.SpellCheckHandler" verb="*" preCondition="integratedMode" /> <remove name="Telerik_Web_UI_DialogHandler_aspx" /> <add name="Telerik_Web_UI_DialogHandler_aspx" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" verb="*" preCondition="integratedMode" /> <remove name="Telerik_RadUploadProgressHandler_ashx" /> <add name="Telerik_RadUploadProgressHandler_ashx" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" preCondition="integratedMode" /> <remove name="Telerik_Web_UI_WebResource_axd" /> <add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode" /> <remove name="ReportViewerWebControlHandler" /> <add name="ReportViewerWebControlHandler" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" verb="*" preCondition="integratedMode" /> </handlers> </system.webServer> <system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_ISoapService" /> <binding name="BasicHttpBinding_ISoapService1" /> <binding name="BasicHttpBinding_ISoapService2" /> <binding name="BasicHttpBinding_ISoapService3" /> </basicHttpBinding> </bindings> <client> <endpoint address="http://localhost:4559/RFTagService" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISoapService" contract="soapService.ISoapService" name="BasicHttpBinding_ISoapService" /> <endpoint address="http://localhost:4560/RFTagFireAlarmService" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISoapService1" contract="fireAlarmService.ISoapService" name="BasicHttpBinding_ISoapService1" /> <endpoint address="http://localhost:4561/RFTagDataSyncService" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISoapService2" contract="dataSyncService.ISoapService" name="BasicHttpBinding_ISoapService2" /> <endpoint address="http://localhost:4562/RFTagMailAlertService" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_ISoapService3" contract="mailAlertService.ISoapService" name="BasicHttpBinding_ISoapService3" /> </client> </system.serviceModel> </configuration>
09-29
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值