Silverlight OpenRIA - 重复的请求
Posted
技术标签:
【中文标题】Silverlight OpenRIA - 重复的请求【英文标题】:Silverlight OpenRIA - duplicated requests 【发布时间】:2016-02-02 09:20:50 【问题描述】:我正在使用 Silverlight 5、.NET 4.5.1 和 OpenRIA。
silverlight 客户端调用长期运行的 OpenRIA 操作。该操作是异步的。从客户端我可以看到代码中的函数只被调用一次。另一方面,从 IIS 服务器端,WCF 函数被多次调用。
我通过 Fiddler 记录的内容 - 操作以错误完成。它被调用过一次,但带有消息“注意:在接收操作失败后重试此请求。”
请求:
GET http://localhost:11213/ClientBin/KEEP-Web-Services-PayrollListService.svc/binary/GetPayrollList?payrollListId=efb1df5d-993a-4c4b-9fe6-013561547632 HTTP/1.1
Accept: */*
Referer: http://localhost:11213/ClientBin/KEEP.xap
Accept-Language: pl
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko
Host: localhost:11213
DNT: 1
Connection: Keep-Alive
Cookie: .KEEP_ASPXAUTH_iPersonel=8673CF25C5650AE86CE77A22B9C9A9D20E7588A077E5EADFFE8F5090F08B48639C9F309B1720BC4AD0D4DE342F149D52234DD8C5F15C0B0CCAD5A074C91E8F14B74FC27D7740A91614DECE034A9F99186375ACEB887E610B32CEA5786BF5EA02D35F144BC49D1E4C254478385EEB4D7E8811959E5494D9D6E9F17D698FCBDC93
回复:
HTTP/1.1 504 Fiddler - Receive Failure
Date: Wed, 28 Oct 2015 13:06:41 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
Cache-Control: no-cache, must-revalidate
Timestamp: 14:06:41.238
[Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes.
这种情况发生在 IISExpres 和 IIS 7.5 中,本地和远程。
更新 1。
我找到了导致操作重复的原因。
未能分配 134217728 字节的托管内存缓冲区。这 可用内存量可能很低。
我可以用 OpenRIA(以前的 wcf-ria-services)做什么来处理它?我认为没有自定义绑定对 OpenRIA 有任何影响。
【问题讨论】:
您能否发布完整的请求,因为它出现在 Fiddler 的原始部分?我在推测一些 http 标头,例如“retry-after” @mCasamento - 我已经编辑了我的帖子。没有像“retry-after”这样的标题。 我明白了。我已经看到 0 字节超过 1M 次的 504 错误,但它一直是服务器端错误。只需在调试器中打开“所有 CLR 异常”即可清楚地指示错误。你试过这个吗?回顾一下,您已经实现了一个长轮询模式(类似彗星),但请求在配置的 15 秒超时之前得到 504,对吧? @mCasamento - (不幸的是)在调试器模式下没有抛出异常。请求每 15 秒不断传入服务器,直到客户端得到第一个响应。 【参考方案1】:问题是 32 位的 IIS。使用 64 位版本即可解决问题。
附: Visual Studio 可以选择在 64 位中使用 IIS-Express。也可以添加到注册表中:
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1
12.0 - Visual Studio 2013
【讨论】:
以上是关于Silverlight OpenRIA - 重复的请求的主要内容,如果未能解决你的问题,请参考以下文章
在 Silverlight 中使用表单进行 Windows 身份验证 [重复]