我的模型绑定器有问题。每次我回收App Pool后,对服务器的第一个请求都无法执行模型绑定。 Request.InputStream
具有正确的请求参数,但Action参数为null,Request.Params
也不包含它们。
这似乎发生在使用JSON的第一个POST请求上。真正的第一个请求是Index()
的GET,它返回视图。之后,客户端发出失败的AJAX请求。
这就是我的行动:
public async Task<ActionResult> GetQueryCounters(string query) { ... }
这是第一个请求中Request.InputStream
的内容(后续请求中的内容相同):
{"query":"SELECT count(*) FROM accounts"}
这是Fiddler中的原始请求:
POST https://[url]/GetQueryCounters HTTP/1.1
Host: [url]
Connection: keep-alive
Content-Length: 281
Origin: https://[url]
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Content-Type: application/json; charset=UTF-8
Accept: application/json, text/javascript, */*; q=0.01
x-ajaxRequest: true
X-Requested-With: XMLHttpRequest
__RequestVerificationToken: [snip]
Referer: https://[url]
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,he;q=0.6
Cookie: [snip]
{"query":"SELECT count(*) FROM accounts"}
导致这种情况的原因是什么?