【发布时间】:2013-10-20 11:29:12
【问题描述】:
我正在使用ASP.Net MVC 3 为我的公司创建单点登录提供程序。在我开始部署到服务器之前,一切都运行良好。我部署到的每个生产服务器,都会出现这个Exception:
[NullReferenceException: Object reference not set to an instance of an object.]
UniQ.SSO.Controllers.LoginController.Index(String requestToken, String callbackUrl) +89
lambda_method(Closure , ControllerBase , Object[] ) +178
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +263
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +38
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +123
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +727142
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +727142
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +309
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +727076
System.Web.Mvc.Controller.ExecuteCore() +159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +334
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +15
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +52
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288
我尝试了各种不同的东西。我尝试使用项目复制所有本地依赖项或部署到不同的服务器。在那之后我尝试了远程调试,但它只是停在function 声明并告诉此时发生了异常。
public ActionResult Index(string requestToken, string trustid, string challenge, string callbackUrl)
到目前为止,Google 也没有提供太多帮助,所以有人知道发生了什么或我做错了什么吗?
【问题讨论】:
-
您需要包含该方法的代码。错误发生在第 89 行,那么那里的代码是什么。
-
如果没有所有可用信息,就很难准确判断。看起来在 LoginController.Index 中有一些东西访问了一个导致抛出这个异常的空变量。还要检查 requestToken、callbackUrl 传递的值。
-
@JohnKoerner 这不对。
+89指的是 IL 代码偏移量,而不是实际的行号。在堆栈跟踪中,LoginController.cs:89将引用 LoginController.cs 文件中的第 89 行。这是因为“已编译”的 .net 程序集中没有原始源文件。 -
@Raj 函数内没有发生异常。我知道这一点是因为我将函数中的代码包装在
try ... catch中,它会在发生时以文本格式输出异常详细信息。虽然我仍然得到解释异常的运行时错误页面,而不是打印出异常。 -
@Feanaro 你是对的,我看错了。
标签: c# asp.net asp.net-mvc-3 exception entity-framework-5