问题标签 [clienthttpstack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
844 浏览

silverlight - Silverlight 完成的 WCF 调用事件未在 Firefox 中触发

我遇到了这个问题,因为 WCF 长时间运行的调用没有触发已完成的事件(最多 1.5 分钟才能返回),它在 IE 8 中工作正常,但在 Firefox、Chrome 或 Safari 中不起作用。在 Fiddler 中查看结果显然会返回,正如我所说,它在 IE 中可以正常工作,所以这方面的事情显然是有效的。

使用示例项目,我设法很好地缩小了范围,这似乎是因为我使用客户端 HTTP 堆栈而不是浏览器堆栈进行网络。

有没有人对客户端 http 堆栈有很多经验或以前遇到过这种类型的行为?

开始时在 IE 中发生了类似的事情,但增加了 WCF 服务客户端的超时时间,解决了这个问题。

任何想法或建议将不胜感激,因为我已经在网上进行了大量搜索,但没有任何运气:(

干杯,奥拉

0 投票
2 回答
1155 浏览

.net - 如何防止 Silverlight 客户端 Http 请求缓存响应?

我正在使用HttpWebRequestcreated fromWebRequestCreator.ClientHttp.Create()从 web 服务中获取数据。在我发现缓存的调用之前,一切似乎都运行良好。我很确定 ClientHttp 不包含缓存,但经过一番搜索,我发现了这个小注释:

客户端 HTTP 处理

  • 缓存支持

http://msdn.microsoft.com/en-us/library/dd772166(VS.95).aspx#networking

这是 MSDN 上 Silverlight 4 页面中的新增功能。但这几乎是我能找到的唯一信息。我发现另一篇文章声称 ClientHttp 将请求来自服务器的无缓存标头,但我真的希望我的 Silverlight 应用程序不依赖于服务器端设置。

解决这个问题的通常方法是简单地为每个调用添加一个随机参数,但我真的想要一个更优雅的解决方案。

有没有办法简单地禁用缓存ClientHttpWebRequest- 首选单次通话,而不是全局设置。

0 投票
1 回答
1434 浏览

silverlight - Silverlight ClientHttp WebRequest 超时

我有一个 silverlight 4 应用程序,它使用 ClientHttp 堆栈来制作一个提供二进制流的 WebRequest。然后我从这个流中读取并做一些事情。但是,我有以下问题:服务器缓冲它发送下来的数据,因此发送过程就像发送-暂停-发送-暂停-发送...

有时服务器需要更长的暂停时间(大约 20 秒),此时连接似乎以某种方式中断。我在 Silverlight 中没有得到任何异常,实际上对于看起来从 Web 响应流读取完成的代码来说是正常的(即没有更多数据)。但是,服务器实际上并没有将其所有数据发送下来(我可以从非 Silverlight 应用程序进行测试,该应用程序会在暂停后获得更多数据)。我认为这可能是一些超时问题(根据我所读到的内容,无法在 Silverlight 中明确设置),但奇怪的是我没有收到指示超时的异常。此外,暂停时间并不长,我预计 20 秒是一个合理的时间。

我还查看了 TCP 流量,看起来在暂停后,Silverlight 向服务器发送了一条 FIN 消息。所以它似乎有点超时并决定断开连接,但它实际上并没有将超时报告为异常或给我任何避免它的方法。

任何想法实际上发生了什么,我该如何防止它?

谢谢!

更新:发现问题。有一个注册表项可以控制系统范围的 Web 请求超时行为,一些应用程序将其设置为 10 秒(例如 Install Anywhere)并“忘记”将其设置回来。关键是:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ReceiveTimeout

我把它改回了一个更大的值,现在它工作正常了!嗯。

0 投票
1 回答
313 浏览

silverlight - 使用浏览器 http 堆栈的 Silverlight 应用程序尝试从服务器响应中读取自定义 http 标头

我正在开发一个使用浏览器 HTTP 堆栈与服务器通信的 silverlight 应用程序(restful 服务)。当服务器响应来自此应用程序的请求时,它使用自定义 HTTP 标头为客户端提供额外信息。

不幸的是,我们无法在 silverlight 应用程序中提取这些自定义标头。似乎自定义标头已被浏览器 HTTP 堆栈删除,然后我们才能处理它们。

这是一个已知的问题?我们可以做些什么来读取这些自定义 HTTP 标头字段吗?

0 投票
1 回答
444 浏览

c# - 有什么方法可以让 ClientHttp 堆栈使用浏览器 cookie?

假设用户已经登录到远程系统,所以他有一个与他的用户名相关联的会话并可以访问他的私人数据。现在有一个 Silverlight 应用程序,它尝试通过HttpWebRequest(ClientHttp 堆栈)与服务器通信。有没有办法将用户会话传递给 Silverlight 应用程序?也许以某种方式与浏览器共享cookie?

更新:

在网络和 SO 上都有代码片段,它们显示了如何将 HttpOnly cookie 从WebBrowser控件传输到WebRequestvia InternetGetCookieEx(例如,使用 WebBrowser 登录到使用 HttpOnly cookie 的站点)。我还不明白的两件事是 - 如果这可以在浏览器 silverlight 应用程序中使用,以及 cookie 是否可以类似地从运行 silverlight 应用程序的浏览器传输到 silverlight 应用程序本身?