のInputStreamの位置をリセット:HttpModuleを持つ要求InputStreamをログに記録する方法、そのようにのようなのIHttpModuleを使用して、私はhttpリクエストの内容をログに記録しようとしています
public class LoggingModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.BeginRequest += ContextBeginRequest;
}
private void ContextBeginRequest(object sender, EventArgs e)
{
var request = ((HttpApplication)sender).Request;
string content;
using (var reader = new StreamReader(request.InputStream))
{
content = reader.ReadToEnd();
}
LogRequest(content)
}
}
を問題があることへの入力ストリームを読んだ後に最後に、InputStreamが消えているか、そうである可能性が高いと思われます。カーソルはストリームの最後にあります。
私はrequest.InputStream.Position = 0;
とrequest.InputStream.Seek(0, SeekOrigin.Begin);
を試しましたが、いずれも動作しません。
エンコードには注意してください。Encoding.UTF8.GetString(bytes); – SimonF
偉大な答え! +1 –