Wie kann ich untersuchen, WCF was 400 bad request über GET?
Die folgenden WCF-endpoint funktioniert gut mit dem WCF test client:
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Bare,
UriTemplate = "listflaggedassets/{platform}?endpoint={endpoint}&pid={portalid}&processCode={processCode}&index={index}&limit={limit}")]
AssetList ListFlaggedAssets(short processCode, string platform, string endpoint = "null", string portalId = "null", int index = 0, int limit = 12);
Jedoch, wenn ich versuche zu navigieren, um die URL http://localhost/DigitalREST/XosAssets.svc/listflaggedassets/SEC?endpoint=superfan&pid=0&processCode=0&index=0&limit=20
bekomme ich einen 400 bad request.
Ich kann nicht scheinen zu finden, jeder Weg, um herauszufinden, WARUM ich bin immer ein bad request, sowie das anbringen von IIS für das Debuggen bricht nicht über Ausnahmen.
Wie kann ich untersuchen, die Ursache für eine schlechte Anfrage?
- Es klingt wie Sie nicht haben, WCF korrekt registriert. Wenn Sie versuchen, diese url - was bekommen Sie? localhost/DigitalREST/XosAssets.svc
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie die Ablaufverfolgung aktivieren, und verwenden Sie Service Trace Viewer
Lassen Sie diese in Ihre app.config (Protokollierung Quellen aus dieser Antwort):
Dann, öffnen Sie die TraceLog.svclog im Service Trace Viewer. Es kann Ihnen nicht sagen, was genau Los ist, aber es wird Informationen über den Verkehr und die Ausnahme selbst.
Können Sie auch prüfen wollen, die Ausnahmen, die Sie aktiviert haben, in den debugger. Öffnen Sie In Visual Studio zu
Debug -> Exceptions
und prüfen Sie, ob Sie haben den richtigen Rahmen überprüft.Der beste Weg wäre die Installation Fiddler und erfassen Sie Ihre Anfrage zusammen mit dem aktivieren von Tracing Ihren Dienst.
Auch versuchen, entfernen Sie die BodyStyle, die Sie in der angegebenen WebGet Attribut und sehen, ob es funktionieren würde.
Ein Grund dafür könnte sein, das ich gestoßen:
Ich versuche zu verlangen, die über die URL mit querystring aber httpbinding war nicht in config-Datei und im Ergebnis war ich immer 400-Bad request Fehler.
Können Sie versuchen, fiddler und auch versuchen, die svcTracer, die Ihnen möglicherweise viel debugging-Informationen auf der Oberseite können Sie es auch verwenden
includeExceptionDetailInFaults=true
Flagge auf dem server, aber es ist wichtig zu wissen, dass Ihr nicht immer Recht, diese Informationen zu senden, die client-speziell wenn der Kunde eine externe entity ist. Mit dieser Warnung im folgenden ist der Hinweis, wie es zu benutzen.Glücklich Debuggen 🙂