小编Dod*_*bit的帖子

为什么Internet Explorer在失败后不会在Ajax调用上发送HTTP post body?

我们能够可靠地重新创建以下场景:

  1. 创建一个小的HTML页面,向服务器发出AJAX请求(使用HTTP POST)
  2. 断开网络连接并重新连接
  3. 监视IE失败后生成的数据包

在网络连接失败后,IE会发出下一个AJAX请求,但在执行HTTP发布时只发送HTTP标头(而不是正文).这会导致服务器上出现各种问题,因为它只是部分请求.谷歌与Bing的这个问题,你会发现很多人抱怨使用AJAX或无法解释的AJAX失败的"随机服务器错误".

我们知道IE(与大多数其他浏览器不同)总是将HTTP POST作为TWO TCP/IP数据包发送.标题和正文是分开发送的.在故障发生后的情况下,IE仅发送标头.

所以我的问题是 - 它为什么会这样?基于HTTP规范似乎是错误的,其他浏览器不会这样做.这只是一个错误吗?当然,这会在任何严肃的基于AJAX的Web应用程序中造成严重破坏.

参考信息:

由HTTP保持活动超时触发的类似问题短于1分钟,并在此处记录:

http://us.generation-nt.com/xmlhttprequest-post-sometimes-fails-when-server-using-keep-aliv-help-188813541.html

http://support.microsoft.com/default.aspx?kbid=831167

以下是故障包捕获之前和之后:

请注意如何发送HTTP标头和Payload http://img827.imageshack.us/i/beforee.png/

失败后,请注意如何仅发送标头.IE 从不发送有效负载,服务器最终会以超时响应. http://img203.imageshack.us/i/retryt.png/

javascript ajax internet-explorer

113
推荐指数
2
解决办法
5万
查看次数

如何编码包含哈希的路径?

你如何正确编码包含哈希(#)路径?请注意,散列不是片段(书签?)指示符,而是路径名称的一部分.

例如,如果有这样的路径:

http://www.contoso.com/code/c#/somecode.cs

例如,尝试执行此操作时会导致问题:

Uri myUri = new Uri("http://www.contoso.com/code/c#/somecode.cs");
Run Code Online (Sandbox Code Playgroud)

它似乎将哈希解释为片段指示符.

用%23手动替换#感觉不对.是否还有其他角色需要更换?在Uri和HttpUtility中有一些转义方法,但似乎都没有.

c# url uri

18
推荐指数
2
解决办法
1万
查看次数

使用ClickOnce可以避免"您想运行此应用程序"提示吗?

我们想通过ClickOnce部署应用程序,但您确实需要单击两次.即一旦在链接上 - 至少再一次在"你想运行这个应用程序"对话框(第一次).

可以在某些PC上创建某种信任(通过组策略或其他方式),以便用户永远不会被问到任何问题.即我们已经验证了应用程序是受信任的,只需获取此URL即可启动.

clickonce

7
推荐指数
1
解决办法
5919
查看次数

在.Net中概述GDI +的路径

如何使用GDI +概述图形路径?例如,我将两个相交的矩形添加到GraphicsPath.我想仅绘制此结果图形路径的轮廓.

请注意,我不想填充该区域,我只想绘制轮廓.

例: http://i.stack.imgur.com/IAVft.png

.net c# gdi+

5
推荐指数
1
解决办法
3903
查看次数

围绕多个语句的 lock 语句是否确保所有更改对其他线程可见(假设它们输入相同的互斥锁)?

如果您在一个锁代码块内有多个共享变量的分配,是否一定意味着所有这些更改对其他线程立即可见,一旦它们在同一对象上输入锁语句就可能在其他处理器上运行 - 或者没有这样的保证?

那里的许多示例显示了一个公共变量的单个“设置”或“获取”,并详细介绍了内存屏障,但是如果内部有一组更复杂的语句会发生什么?甚至有可能做其他事情的函数调用?

像这样的东西:

lock(sharedObject)
{
  x = 10;
  y = 20;
  z = a + 10;
}
Run Code Online (Sandbox Code Playgroud)

如果此代码在另一个线程上运行,而该线程可能在另一个处理器上执行,它是否对更改的“可见性”做出任何保证?

lock (sharedObject)
{
  if (y == 10)
  {
     // Do something. 
  }
}
Run Code Online (Sandbox Code Playgroud)

如果答案是否定的- 也许并解释何时这些变化可能变得可见?

c# synchronization locking thread-safety

4
推荐指数
1
解决办法
1239
查看次数

CCNet电子邮件不包含MSBuild结果

我们正在使用CCNet 1.4.4.83但是当MSBuild任务失败时,我们不会在电子邮件通知中获得MSBuild结果(即丢失文件或编译失败的原因).

确实在CCNet网站(仪表板)上看到了构建失败.

我可以在artifacts文件夹中看到一个名为msbuild-results.xml的文件,因此msbuild任务看起来像是正确配置的.

看起来由于某种原因,在创建电子邮件通知时,但是在查看仪表板时,结果不会合并.

电子邮件任务位于publishers部分和标记之后.

我错过了什么?

email msbuild-task ccnet-config

2
推荐指数
1
解决办法
1170
查看次数