找不到方法:'System.Web.Http.Filters.HttpActionExecutedContext.get_Request()'

时间:2019-07-03 18:41:20

标签: c#

没有特殊原因,我开始出现此错误。

  

{       “ Message”:“发生错误。”,       “ ExceptionMessage”:“未找到方法:'System.Net.Http.HttpRequestMessage   System.Web.Http.Filters.HttpActionExecutedContext.get_Request()'。”,       “ ExceptionType”:“ System.MissingMethodException”,       “ StackTrace”:“在Accounting.Api.Attributes.ExceptionHandlingAttribute.OnException(HttpActionExecutedContext   上下文)\ r \ n   System.Web.Http.Filters.ExceptionFilterAttribute.OnExceptionAsync(HttpActionExecutedContext   actionExecutedContext,CancellationToken cancellingToken)\ r \ n ---结束   从上一个引发异常的位置开始的堆栈跟踪   --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)\ r \ n   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)\ r \ n   System.Web.Http.Filters.ExceptionFilterAttribute.d__3.MoveNext()\ r \ n ---   从先前引发异常的位置开始的堆栈跟踪结束   --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)\ r \ n   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)\ r \ n   System.Web.Http.Controllers.ExceptionFilterResult.d__6.MoveNext()\ r \ n ---   从先前引发异常的位置开始的堆栈跟踪结束   --- \ r \ n在System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务   任务)\ r \ n   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务   任务)\ r \ n   System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext()“   }

目标框架是4.6.1。

有趣的是,此错误发生在生产服务器上,而不发生在开发服务器上。我比较了环境文件和部署文件,它们看起来都一样。

什么可能导致此错误?我试图用Google搜索它,但在这里只问了类似的问题

Exception not going to ExceptionFilter after referencing Standard lib

但没有任何相关解决方案。

2 个答案:

答案 0 :(得分:0)

我也遇到了此错误,解决方案是在错误列表中的警告之间切换,可能存在程序集冲突错误,并建议将程序集重定向放入web.config中。

双击警告或选择警告后按Enter键,Visual Studio会通过将程序集重定向添加到web.config文件来处理其余的事情。

答案 1 :(得分:0)

您可以通过以下方法解决此问题:

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.2.0.0" newVersion="4.2.0.0" />
      </dependentAssembly>