.net – 404控制器在外部组件
|
我在Asp.Net MVC 4项目中无法解决404回复.它内置VS2012定位4.5. 我已经将预编译的视图和控制器内置到独立的DLL中.我可以动态加载DLL并从我的核心项目中检查,甚至调用它们的方法;然而,似乎MVC框架不知道控制器.我在这附近,但有些东西丢了. 控制器和视图背景 控制器内置在独立的MVC项目中,并由Controller继承.没有什么太有趣的那里.这些意见使用RazorGenerator并成为项目中的类. 项目的输出是一个正确包含控制器和视图的DLL. DLL实现一个特定的接口,我们将它称为IPlugin,在一个单独的类(不是控制器的一部分)在库中. 加载DLL 在Visual Studio中作为管理员运行我编译我的应用程序,它是托管在IIS下.随着项目的建立,我将一个插件DLL放入我的“插件”目录.没有调试(这将变得很重要),我打开IE并导航到该网站.请注意,此时应用程序已经构建,但从未运行,因此启动事件将触发.如果我回收应用程序池,这里的所有内容仍然是一致的. 我有一个启动类有两个方法,PreStart和PostStart,并分别使用WebActivator.PreApplicationStartMethod和WebActivator.PostApplicationStartMethod调用方法. PreStart是我执行以下操作的地方: >获取我的“插件”目录中的所有插件DLL的列表 >将程序集添加到BuildManager 在’PostStart’中,我做这个代码(基于RazorGenerator.Mvc的代码): foreach (var assembly in Modules.Select(m=>m.Value))
{
var engine = new PrecompiledMvcEngine(assembly)
{
UsePhysicalViewsIfNewer = HttpContext.Current.Request.IsLocal
};
ViewEngines.Engines.Insert(0,engine);
VirtualPathFactoryManager.RegisterVirtualPathFactory(engine);
}
此上下文中的模块是键/值对,其中值是加载的程序集.此代码的目的是确保MVC通过为知道如何解析视图(这是RazorGenerator的一部分)的每个程序集添加视图引擎来了解视图. 我怎么知道我很近(但显然没有雪茄) IPlugin定义了一种名为RegisterRoutes的方法,您猜测它将为实现该接口的用户注册路由.我在PreStart中调用此方法,并添加路由 – 我已经验证了这些存在于我的路由表中.例如,在我的插件中定义的路线上,通过在PreStart中动态调用该方法创建,在检查我的路由时,我会看到像这样的DataToken: Namespaces = Plugin.Name.Controllers 所以,路由被注册,程序集被加载,我已经验证了DLL被正确复制到AppDomain的DynamicDirectory.我可以调用在运行时动态加载的类的成员.但是当我导航到路由匹配的URL时,我得到一个404.这不是一个“找不到视图”的YSOD,更类似于没有找到控制器. 这是混淆我的部分:如果在这一点上,没有任何事情,我回到Visual Studio,并点击F5 …一切正常. 就像Visual Studio以某种方式意识到控制器,我无法识别,而且MVC框架正在上升. 最后一个问题 我缺少什么,如何让MVC框架知道我的控制器? 嘿,在这一点上,如果你还在读这个,谢谢. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 在Application_Start中访问ninject内核
- asp.net – 值得学习经典ASP?
- ASP.NET MVC5 OWIN:通过Facebook登录后,为什么User.Identi
- asp.net-mvc – 如何在Visual Studio 2008和ASP.Net MVC中编
- asp.net-mvc-3 – 为MVC3应用程序配置Ninject的正确方法是什
- 身份验证 – 如何为Asp.NET MVC 5创建ClaimsIdentity对象?
- .net – 从何处运行实体的重复检查
- 覆盖ASP.NET WebMethod参数的DateTime序列化
- asp.net-mvc – 对HTTP POST请求的正确响应是什么?
- asp.net – 命名空间“系统”中不存在类型或命名空间名称“
- UnitOfWork知多少
- asp.net-mvc – 我可以传递一个匿名类型到我的AS
- asp.net-mvc – 将JWT令牌存储在cookie中
- asp.net – 文件上传控件HasFile始终为false,nam
- asp.net – 如何单元测试使用HostingEnvironment
- 是否可以优化ASP.NET WebForms以便像ASP.NET MVC
- ASP.NET MVC错误处理 – 删除aspxerrorpath
- 从asp.net中的gridview获取已检查的行
- asp.net – ‘System.Web.UI.WebControls.TextBo
- asp.net – 关键字不支持:’server’
