【发布时间】:2012-05-15 10:53:42
【问题描述】:
我有一个web方法,是从jquery的ajax方法中调用的,像这样:
$.ajax({
type: "POST",
url: "MyWebService.aspx/DoSomething",
data: '{"myClass": ' + JSON.stringify(myClass) + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
success: function (result) {
alert("success");
},
error: function () {
alert("error");
}
});
这是我的网络方法:
[WebMethod(EnableSession = true)]
public static object DoSomething(MyClass myClass)
{
HttpContext.Current.Request.InputStream.Position = 0;
using (var reader = new StreamReader(HttpContext.Current.Request.InputStream))
{
Logger.Log(reader.ReadToEnd());
}
}
如果 javascript 中的 myClass 被序列化为正确的格式,则执行 DoSomething 方法并将原始 json 保存到数据库。 但如果 myClass 错误,则该方法根本不会执行,我也无法记录有问题的 json...
即使序列化失败,始终以某种方式获取和记录我的 Web 方法接收的原始 json 的最佳方法是什么?
【问题讨论】:
-
尝试谷歌搜索“IIS日志请求httpmodule”你应该会发现一些有用的东西(抱歉我现在找不到相关代码)
-
@alex - 谢谢,IHttpModule 正是我所需要的。
标签: c# jquery asp.net json trace