2017-12-19 6 views
0

Ich habe eine web api 2 Projekt in .net 4.6.1, in dem ich versuche, eine benutzerdefinierte ValidateModelAttribute hinzufügen, aber ich bekomme eine Warnung für die system.net.http 4.0 Montage.Ich kann nicht installieren system.net.http

enter image description here

Hier sind die Montageeigenschaften

enter image description here

ich versucht habe, zu entfernen und das Paket mehrere Male neu zu installieren, aber ich halte die gleiche Warnung bekommen. Und wenn ich versuche, die CustomModelAttribute der API-Aufruf von Postman zu verwenden, führt den folgenden Fehler

{

"Message": "Ein Fehler ist aufgetreten.",

"ExceptionMessage": „Methode nicht gefunden: 'System.Net.Http.HttpRequestMessage System.Web.Http.Controllers.HttpActionContext.get_Request()' ",

"Exception.": "System.MissingMethodException",

"Stacktrace": "in myapi.Api.Mvc.Filters.ValidateModelAttribute.OnActionExecuting (HttpActionContext Action) \ r \ n bei System.Web.Http.Filters.ActionFilterAttribute.OnActionExecutingAsync (HttpActionContext Action, CancellationToken CancellationToken) \ r \ n --- Ende der Stapelüberwachung von früheren Stelle, an der Ausnahme geworfen wurde --- \ r \ n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Aufgabe Task) \ r \ n bei System.Runtime .CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Task) \ r \ n bei System.Web.Http.Filters.ActionFilterAttribute.d__0.MoveNext() \ r \ n --- Ende der Stapelüberwachung von vorheriger Position whe re Ausnahme geworfen wurde --- \ r \ n bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Aufgabe Task) \ r \ n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Task) \ r \ n unter System.Web.Http.Controllers.ActionFilterResult.d__2.MoveNext() \ r \ n --- Ende des Stack-Trace vom vorherigen Speicherort, an dem die Ausnahme ausgelöst wurde --- \ r \ n bei System.Runtime. CompilerServices.TaskAwaiter.ThrowForNonSuccess (Aufgabe Task) \ r \ n bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Aufgabe Task) \ r \ n bei System.Web.Http.Dispatcher.HttpControllerDispatcher.d__1.MoveNext () " }

Hier ist der Brauch

Attribut
using System.Net; 
using System.Web.Http.Controllers; 
using System.Net.Http; 
using System.Web.Http.Filters; 

namespace myapi.Api.Mvc.Filters 
{ 
    public class ValidateModelAttribute : ActionFilterAttribute 
    { 
     public override void OnActionExecuting(HttpActionContext actionContext) 
     { 
      if (actionContext.ModelState.IsValid == false) 
      { 
       actionContext.Response = actionContext.Request.CreateErrorResponse(
        HttpStatusCode.BadRequest, actionContext.ModelState); 
      } 
     } 
    } 
} 
+0

Mögliche Duplikat [HttpActionContext.get \ _request() -Methode nicht gefunden bei der Verwendung von Microsoft Asp.NET Dependency Injection] (https://stackoverflow.com/questions/46887799/httpactioncontext-get-request -method-nicht-gefunden-wenn-benutze-microsoft-asp-net-de) – Amy

Antwort

0

ich es endlich an die Arbeit. Alles, was ich tun musste, war mit der rechten Maustaste auf system.net.http Assembly und klicken Sie auf Eigenschaften. Dann habe ich copy local zu true

Verwandte Themen