我创建了一个过滤器属性
public class AuthFilterAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
public AuthFilterAttribute()
{
}
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
}}
我已在global.asax.cs中注册了此过滤器。 当我尝试使用邮递员调用我的web api时,它显示错误: -
找不到方法:' System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()'。
我的项目目标框架是4.6.1,System.Net.Http版本是4.2.0.0
我的api看起来像这样: -
[AuthFilter]
public class ScheduleApiController : BaseApiController
{
[Route("api/v1/schedules")]
[HttpGet]
public IHttpActionResult GetSchedules()
{
}}
我知道之前已经问过这个问题,但解决方案都没有对我有用。 请帮我解决这个问题。
答案 0 :(得分:5)
您是否偶然引用了.NET标准库。我遇到了这个问题,并通过绑定重定向解决了这个问题:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
答案 1 :(得分:0)
您可以尝试启用自动生成绑定。 右键单击您的项目->属性->应用程序
答案 2 :(得分:0)
您是否在任何情况下都引用了 .NET 标准库。我遇到了这个问题并通过绑定重定向解决了它:
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.2.0.0" />
</dependentAssembly>
非常感谢“Kiloh”。它对我有用!