c# – Ninject问题…… 404错误问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – Ninject问题…… 404错误问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2312字,纯文字阅读大概需要4分钟。
内容图文
![c# – Ninject问题…… 404错误问题](/upload/InfoBanner/zyjiaocheng/812/682d04c0cc644f1384d68bc78117804d.jpg)
我们正在使用心爱的Ninject Ninject.Web.Mvc和MVC 2,并遇到了一些问题.专门处理404错误.我们有一个日志记录服务,记录500个错误并记录它们.除了当我们试图进入一个不存在的控制器时,一切都在完美地完成.而不是获得所需的404我们最终得到500错误:
Cannot be null
Parameter name: service
[ArgumentNullException: Cannot be null
Parameter name: service]
Ninject.ResolutionExtensions.GetResolutionIterator(IResolutionRoot root, Type service, Func`2 constraint, IEnumerable`1 parameters, Boolean isOptional) +188
Ninject.ResolutionExtensions.TryGet(IResolutionRoot root, Type service, IParameter[] parameters) +15
Ninject.Web.Mvc.NinjectControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +36
System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +68
System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +118
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +46
System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +63
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +13
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8679426
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
我做了一些搜索,发现了一些类似的问题,但那些404问题似乎是无关的.这里的任何帮助都会很棒.
谢谢!
玩笑
解决方法:
编辑:这是在MVC2:http://github.com/enkari/ninject.web.mvc的主干
controllerType现在为null,我们可以将它传递给基础并让404正常发生:
protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
{
if(controllerType == null)
{
// let the base handle 404 errors with proper culture information
return base.GetControllerInstance(requestContext, controllerType);
}
var controller = Kernel.TryGet(controllerType) as IController;
if (controller == null)
return base.GetControllerInstance(requestContext, controllerType);
var standardController = controller as Controller;
if (standardController != null)
standardController.ActionInvoker = CreateActionInvoker();
return controller;
}
内容总结
以上是互联网集市为您收集整理的c# – Ninject问题…… 404错误问题全部内容,希望文章能够帮你解决c# – Ninject问题…… 404错误问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。