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:重复故事板的一部分

在 Silverlight 中使用表单进行 Windows 身份验证 [重复]

Silverlight:在布局中查找所有类型的控件

Telerik 与 Silverlight 的 Infragistics

结合两个 SyndicationFeed

WPF和Silverlight区别