Ich muss die Anfrage nach Payload für Anfragen an IIS protokollieren. Ist es möglich, die Protokollierung von Request-Post-Payloads mit den vorhandenen Logging- und erweiterten Logging-Modulen in IIS 7.5 zu konfigurieren, oder kann mich jemand zu irgendwelchen benutzerdefinierten Modulen leiten, die es mir erlauben, die Post-Payloads zu protokollieren.IIS 7 Log Request Body
Antwort
Es kann tatsächlich getan wird, nach https://serverfault.com/a/90965, der ironischerweise eine Antwort auf die Frage, die David Silva Smith hier in seiner Antwort verknüpft und behauptete, es nicht getan werden kann;)
Die IIS protokolliert nur Querystring und Header-Informationen ohne POST-Daten.
Wenn Sie IIS7 verwenden, können Sie für Statuscode aktiviert fehlgeschlagen 200. Tracing-Anforderung, die alle Daten aufzeichnen und Sie wählen können , welche Art von Daten zu enthalten.
ich es geschafft, eine Textdatei für meine Anfragen zu erstellen, die die gesamte Anforderung enthalten (Header und Antwort), habe ich es nur bestimmte Post-Anfragen zu protokollieren:
protected void Application_BeginRequest(Object Sender, EventArgs e)
{
string uniqueid = Guid.NewGuid().ToString();
string logfile = String.Format("C:\\path\\to\\folder\\requests\\{0}.txt", uniqueid);
Request.SaveAs(logfile, true);
}
Hoffentlich hilft Ihnen!
Hier ist der Code des benutzerdefinierten HTTP-Moduls, das wir verwenden, um HTTP-POST-Anfragedaten zu protokollieren.
using System;
using System.Web;
namespace MySolution.HttpModules
{
public class HttpPOSTLogger : IHttpModule
{
public void Dispose()
{
}
public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}
private void context_BeginRequest(object sender, EventArgs e)
{
if (sender != null && sender is HttpApplication)
{
var request = (sender as HttpApplication).Request;
var response = (sender as HttpApplication).Response;
if (request != null && response != null && request.HttpMethod.ToUpper() == "POST")
{
var body = HttpUtility.UrlDecode(request.Form.ToString());
if (!string.IsNullOrWhiteSpace(body))
response.AppendToLog(body);
}
}
}
}
}
Vergessen Sie nicht, es in web.config Ihrer Anwendung zu registrieren.
Verwenden system.webServer Abschnitt für IIS Integrated Modell
<system.webServer>
<modules>
<add name="HttpPOSTLogger" type="MySolution.HttpModules.HttpPOSTLogger, MySolution.HttpModules" />
</modules>
</system.webServer>
Verwenden system.web Abschnitt für IIS klassisches Modell
<system.web>
<httpModules>
<add name="HttpPOSTLogger" type="MySolution.HttpModules.HttpPOSTLogger, MySolution.HttpModules"/>
</httpModules>
</system.web>
II-Protokoll Vor der Anwendung Modul:
::1, -, 10/31/2017, 10:53:20, W3SVC1, machine-name, ::1, 5, 681, 662, 200, 0, POST, /MySolution/MyService.svc/MyMethod, -,
IIS log Nach dem Anwenden des Moduls:
::1, -, 10/31/2017, 10:53:20, W3SVC1, machine-name, ::1, 5, 681, 662, 200, 0, POST, /MySolution/MyService.svc/MyMethod, {"model":{"Platform":"Mobile","EntityID":"420003"}},
Vollständiger Artikel:
https://www.codeproject.com/Tips/1213108/HttpModule-for-logging-HTTP-POST-data-in-IIS-Log
- 1. Application Request Routing (ARR) IIS 7 Leerzeichen in URL
- 2. IIS 7 antwortet nicht
- 3. entfernen IIS 7 leitet
- 4. Kann ServiceStack Runner Request Body abrufen?
- 5. Play Framework Scala: Wie Stream Request Body
- 6. Mix Request/Response Body und Datenstrukturen
- 7. IIS - Source IP Log Analyse
- 8. IIS 7 'Server.CreateObject fehlgeschlagen'
- 9. IIS 7 aktiviert Protokolle
- 10. Legendes IIS 7 Protokolldateien
- 11. IIS 7 Komprimierung
- 12. Fehlersitzung in IIS 7
- 13. IIS 7, ASP.NET: AccessViolationException
- 14. iis 7 handler error
- 15. App-Engine-Warnung in Request Log
- 16. Datei-Upload-Berechtigungsproblem IIS 7
- 17. IIS 7 Identitätswechsel und Identitäten
- 18. Sitzung Timeout in IIS 7
- 19. Wie generiert iis 7 etags
- 20. IIS 7 HTTPS funktioniert nicht
- 21. NHibernate Sitzung mit IIS 7
- 22. Guzzle sendet PSR-7 POST Body nicht korrekt
- 23. IIS 7-Authentifizierung für Flash-bezogene Dateien
- 24. Abrufen POST Request Body des HTTP-Client in C#
- 25. warum hat "request body" einen roten hintergrund in fiddler?
- 26. CherryPy So lesen Sie Chunked Encoded Request Body
- 27. Wie symbolisiert Crash-Log mit Xcode 7?
- 28. IIS 7 - Authentifizierung in IIS vs Authentifizierung in web.config
- 29. Browser-Name und Version von IIS-Protokolldatei in Log Parser
- 30. MVC App funktioniert in IIS 7, funktioniert nicht in Cassini (IIS 7 auch)
Sie sehen nicht den Wunsch Körper auf diese Weise trotzdem ... Nur einige diagnostische Informationen Header und. – Azimuth
@Azimuth Ich habe dies nicht verifiziert, aber anscheinend enthalten diese Felder den http Körper der Anfrage bzw. Antwort: 'GENERAL_REQUEST_ENTITY' und' GENERAL_RESPONSE_ENTITY_BUFFER' –
@Azimuth ist falsch. Ich habe die Ablaufverfolgung für fehlgeschlagene Anfragen eingerichtet und den gesamten POST-Nachrichtentext zurückgeholt. Hat mir geholfen herauszufinden, was genau an meine API gesendet wurde: http://blogs.msdn.com/b/benjaminperkins/archive/2012/01/02/enable-and-activate-failed-request-tracing-rules.aspx ? Redirected = true –