错误/堆栈跟踪

时间:2018-04-09 19:53:11

标签: asp.net iis model-view-controller servicestack

ServiceStack版本5.0.2

我想知道是否有人可以给我一个指针,指出下面的堆栈跟踪中显示的错误的可能原因。 (我是初级开发人员,所以我对这一切都很陌生。)

我们有一个ASP.net MVC应用程序,其中包含一些ServiceStack.Mvc集成。 (我怀疑我们正在使用ServiceStack的auth提供程序功能来处理对MVC控制器操作请求的身份验证)。

今天,我们目睹了在尝试登录我们的Web应用程序时出现的错误。下面是出现的一个错误的堆栈跟踪。

“MyController”上的Index操作上有一个'Authenticate'属性。

[Authenticate]
public class MyController : ServiceStackController<AuthUserSession>

我可以从堆栈跟踪中扣除的是,在调用MVC控制器操作之后,服务堆栈ServiceRunner尝试执行服务(我不知道哪一个)并且在execute方法中有一些空引用,正在抛出异常。

我想知道神话或其他任何人以前是否见过这个,或者可以对服务人员可能尝试执行的服务或任何有关可能原因的信息有所了解。

重新启动Web服务器后问题消失了

   Exception type: NullReferenceException 
    Exception message: Object reference not set to an instance of an object.   



Stack trace:    at ServiceStack.DtoUtils.CreateErrorResponse(Object request, Exception ex)
       at ServiceStack.Host.ServiceRunner`1.HandleException(IRequest request, TRequest requestDto, Exception ex)
       at ServiceStack.Host.ServiceRunner`1.Execute(IRequest request, Object instance, TRequest requestDto)
       at ServiceStack.Host.ServiceRunner`1.Process(IRequest requestContext, Object instance, Object request)
       at ServiceStack.Host.ServiceExec`1.Execute(IRequest request, Object instance, Object requestDto, String requestName)
       at ServiceStack.Host.ServiceRequestExec`2.Execute(IRequest requestContext, Object instance, Object request)
       at ServiceStack.Host.ServiceController.ManagedServiceExec(ServiceExecFn serviceExec, IService service, IRequest request, Object requestDto)
       at ServiceStack.Host.ServiceController.<>c__DisplayClass36_0.<RegisterServiceExecutor>b__0(IRequest req, Object dto)
       at ServiceStack.Host.ServiceController.Execute(Object requestDto, IRequest req)
       at ServiceStack.InProcessServiceGateway.ExecSync[TResponse](Object request)
       at ServiceStack.InProcessServiceGateway.Send[TResponse](Object requestDto)
       at MyApplication.Controllers.MyController.Index()

1 个答案:

答案 0 :(得分:1)

之前我没有看到此错误,但StackTrace源自您的MyController.Index()操作。

ServiceStackController不使用网关,ExecuteServiceStackFilters也不使用MVC控制器上的AuthenticateAttribute。所以我会说这是MyController.Index()实施中导致它的原因。