C# visual studio 2013中的自定义js httphandler
我正在尝试连接一个自定义IHttpHandler来处理对我网站的*.js文件请求。在我的一生中,当有人向我的web服务器请求js文件时,我甚至不能让IISExpress创建我的httphandler。我尝试了system.webServer处理程序设置的几种变体,包括C# visual studio 2013中的自定义js httphandler,c#,asp.net,visual-studio-2013,iis-express,C#,Asp.net,Visual Studio 2013,Iis Express,我正在尝试连接一个自定义IHttpHandler来处理对我网站的*.js文件请求。在我的一生中,当有人向我的web服务器请求js文件时,我甚至不能让IISExpress创建我的httphandler。我尝试了system.webServer处理程序设置的几种变体,包括 <add name="MyHandler" type="BusinessLayer.Web_Stuff.MyHandler, BusinessLayer" verb="*" path
<add name="MyHandler"
type="BusinessLayer.Web_Stuff.MyHandler, BusinessLayer"
verb="*"
path="*.js"
resourceType="Unspecified"
preCondition="integratedMode"
modules="IsapiModule"
scriptProcessor="c:\windows\Microsoft.net\framework\v4.0.30319\aspnet_isapi.dll"/>
及
我正在Visual Studio 2013中使用IISExpress运行此功能。如果我将路径改为*.test而不是js,那么这个处理程序可以毫无问题地工作,但我无法使它适用于*.js文件。似乎IISExpress只是通过提供磁盘外的文件来处理这些请求。有人知道如何绕过它,以便我可以让我的处理程序处理js文件的请求吗
更正:当我在指定IsapiModule的情况下使用top web.config设置时,会实例化MyHandler的一个实例,但从未对我的对象调用接口的ProcessRequestHttpContext上下文方法。根据最下面的定义,我的处理程序的任何实例都不会被实例化。经过几个小时的争论,我终于找到了答案。关键是我必须向system.webServer中的modules xml元素添加一个属性
<modules runAllManagedModulesForAllRequests="true" >
如果没有此属性,则不会调用流程请求处理程序。设置之后,这就是处理程序部分所需的全部内容
<add name="JSHandler"
type="BusinessLayer.Web_Stuff.ScriptMinifyHandler, BusinessLayer"
verb="*"
path="*.js"
resourceType="Unspecified"
preCondition="integratedMode" />
我必须多读一些关于这个设置的书,但是如果有人能告诉我更多关于为什么这样做的话,我很想听听
<add name="JSHandler"
type="BusinessLayer.Web_Stuff.ScriptMinifyHandler, BusinessLayer"
verb="*"
path="*.js"
resourceType="Unspecified"
preCondition="integratedMode" />