Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net MVC自定义RouteHandler不触发文件_Vb.net_Mef_Asp.net Mvc 5_Iroutehandler - Fatal编程技术网

Vb.net MVC自定义RouteHandler不触发文件

Vb.net MVC自定义RouteHandler不触发文件,vb.net,mef,asp.net-mvc-5,iroutehandler,Vb.net,Mef,Asp.net Mvc 5,Iroutehandler,我使用以下代码向自定义routehandler注册路线: routes.Add(New Route(path & "/{assembly}/{*resource}", New RouteValueDictionary(), New RouteValueDictionary(New With { _ Key .assembly = AssemblyName _ }), New EmbeddedContentRouteHandler(Plu

我使用以下代码向自定义routehandler注册路线:

 routes.Add(New Route(path & "/{assembly}/{*resource}", New RouteValueDictionary(), New RouteValueDictionary(New With { _
             Key .assembly = AssemblyName _
            }), New EmbeddedContentRouteHandler(PluginAssembly, AssemblyName & "." & path)))
这允许我访问编译DLL中的嵌入式资源,例如:/Content/PluginAssemblyName/File.name

在MVC 3和MVC 4中,ProcessRequest函数每次都会启动,但在MVC 5中,它不会启动,它只在我指定目录时启动,这显然会给我一个空引用异常,因为我正在查找文件,而不是目录(显然,文件应该以.as命名)

我试着排除.css和.js,看看我的自定义routehandler是否会启动,什么都没有。在MVC4项目中进行测试,效果非常好

开始把我的头发扯下来

你知道为什么在MVC5中RouteHandler不会启动,但在MVC4和MVC3中会启动吗


(这是一个使用MEF的可插拔MVC项目,由于升级路径不太顺利,我将它一块一块地带到MVC 5)

启动ASP.net 4,它不会拦截以扩展名结尾的URL。 按照解决方案恢复到原来的行为

如果您想拦截现有文件,请不要忘记在路由配置中添加这一行

routes.RouteExistingFiles = true;

这可能与我在这里回答的问题的原因和解决方案相同谢谢,这很有意义,我想我从来没有在.NET4.0上做过我的MVC项目,即使它是针对它的?请在此处添加您的答案,并引用您评论中已回答的问题,以便我可以标记它IIS或web.config配置可能仍在MVC3上。如果它确实解决了你的问题,我会补充我的答案:)它解决了原来问题的问题,是的。现在看来我无法访问DLL的嵌入式资源,这是完全不同的(除非你知道为什么会发生这种情况,哈哈),呵呵,提醒检查“EmbeddedResource”作为新项目的构建操作。。。那没用,但是我