微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“尝试创建控制器时发生错误”无缘无故随机发生

如何解决“尝试创建控制器时发生错误”无缘无故随机发生

我有一件很奇怪的事情随机发生。

我有一个 api 控制器(实际上是 UmbracoAPiController),它在本地和测试站点上都可以正常工作,并使用依赖项注入 (Autofac 5.1.2)。

但是有时当我添加一个非常简单的代码行时

var somevariable = "some variable";

然后它就无法再识别控制器,就像依赖注入停止工作一样:

{
  "Message": "An error has occurred.","ExceptionMessage": "An error occurred when trying to create a controller of type 'MyApiController'. Make sure that the controller has a parameterless public constructor.","ExceptionType": "system.invalidOperationException","StackTrace": "   at System.Web.Http.dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request,HttpControllerDescriptor controllerDescriptor,Type controllerType)\r\n   at System.Web.Http.Controllers.HttpControllerDescriptor.CreateController(HttpRequestMessage request)\r\n   at System.Web.Http.dispatcher.HttpControllerdispatcher.<SendAsync>d__15.MoveNext()","InnerException": {
    "Message": "An error has occurred.","ExceptionMessage": "Type 'MyDomain.Api.Controllers.MyApiController' does not have a default constructor","ExceptionType": "System.ArgumentException","StackTrace": "   at System.Linq.Expressions.Expression.New(Type type)\r\n   at System.Web.Http.Internal.TypeActivator.Create[TBase](Type instanceType)\r\n   at System.Web.Http.dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage request,Type controllerType,Func`1& activator)\r\n   at System.Web.Http.dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request,Type controllerType)"
  }
}

它真的是随机发生的。

然后我需要删除编译行,然后再次添加该行,编译它有时会开始工作,或者有时我需要多次重复删除和重新添加才能使其工作。

此外,当我让它在本地工作时,相同的代码有时会在测试站点上失败。而且我需要按照上面的做,然后再次部署以测试它是否可以重新开始工作。

这真的很令人沮丧,因为没有什么可以阻止代码,而且这一切都是随机发生的。

我不知道它可能对什么敏感。我知道这并不多,但它确实是正在发生的事情。

我使用 AutoFac 5.1.2 和 .NET 4.7.2

只是为了添加所有的api控制器都失败了,不仅仅是这个。所以 DI 一定对那个项目的某些事情很挑剔。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。