HttpBatchResponseMessage 响应永远不会在我的机器上完全返回,它只返回标头但不完成请求。我尝试了以下 OData 示例,它在我同事的机器上运行良好:
(超级简单的尝试,下载,启动,在浏览器或提琴手中显示网络请求)
我真的很感激进一步调查的想法!
响应
从 POST 到http://localhost:15625/odata/ $batch 只返回没有任何内容的标题
Cache-Control:no-cache
Content-Length:2114
Content-Type:multipart/mixed; boundary=batchresponse_1c6b4001-17b8-41bb-9579-970cdc358dba
DataServiceVersion:3.0
Date:Tue, 10 Mar 2015 17:03:40 GMT
Expires:-1
Pragma:no-cache
Server:Microsoft-IIS/8.0
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcVXNlcnNca2phcnRhblxEb3dubG9hZHNcT0RhdGFFRkJhdGNoU2FtcGxlXE9EYXRhRUZCYXRjaFNhbXBsZVxvZGF0YVwkYmF0Y2g=?=
想通了...
返回的标头已经说明了响应的长度(Content-Length:2114)。我尝试注入一些自定义类并发现:
- 在我同事的电脑上工作
- 返回 ODataBatchContent 时出现问题,因为我使用了 StringContent 代替(这不起作用)
- 序列化到 MemoryStream 时,ODataBatchContent 序列化得非常好
我试过了
- 禁用任何防火墙、防病毒软件、软件等。
- 更新 Visual Studio 等,我的配置与我同事的配置几乎相同
- 调试...很多
要求
POST 到 /odata/$batch
状态码:202 接受
标题:
Accept:multipart/mixed
Accept-Encoding:gzip, deflate
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:no-cache
Connection:keep-alive
Content-Length:1201
Content-Type:multipart/mixed;boundary=batch_b58d-91a6-2b46
DataServiceVersion:1.0
Host:localhost:15625
MaxDataServiceVersion:3.0
Origin:http://localhost:15625
Pragma:no-cache
Referer:http://localhost:15625/Index.html
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
谢谢。