1

HttpBatchResponseMessage 响应永远不会在我的机器上完全返回,它只返回标头但不完成请求。我尝试了以下 OData 示例,它在我同事的机器上运行良好:

http://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/OData/v3/ODataEFBatchSample/ReadMe.txt

(超级简单的尝试,下载,启动,在浏览器或提琴手中显示网络请求)

我真的很感激进一步调查的想法!

响应

从 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

谢谢。

4

0 回答 0