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

问题描述

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

我有一个 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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...