Installed .NET Framework 4.5 Ajax POST IIS hang

时间:2023-02-16 10:55:58

去年我已写过一篇关于安装.NET Framework 4.5后特定场景Ajax POST的挂起问题 => http://www.cnblogs.com/junchu25/archive/2012/10/28/2743205.html,今天补充一些非代码级别的解决方案。

前几天用户反馈某个应用一定程度间隔点击无响应(在等待较长时间后恢复正常),页面较为简单Ext.NET的GridPanel + Store。分别在Windows 7 Ultimate、Windows Server 2008 R2 + IIS 7.5运行都存在该问题。首先在我们的Dev、Pub环境(Windows Server 2012 + IIS 8.0)测试并未出现相应情况,尝试访问用户应用并通过Microsoft Network Monitor抓取数据包,问题出现时服务器确实没有响应。登陆用户服务器使用性能计数器添加Request/sec + Microsoft Network Monitor确认请求已转交给IIS Worker Process处理。这个时候IIS并没有挂起,它可以继续响应其它客户端的请求,比如IE新建一个会话访问或者使用其它厂商浏览器(Chrome、Firefox),同时发现只有在IE浏览器、同一个会话请求上会产生阻塞。WinDbg ~* kb查看非托管堆栈一些线程处于如下状态:

  Id: 1710.1788 Suspend:  Teb: 000007ff`ffebe000 Unfrozen
RetAddr : Args to Child : Call Site
000007fe`fd7c162d : 0000036c` 000001c4` ` `0100eedc : ntdll!ZwRemoveIoCompletion+0xa
`7732bd81 : `00003a98 `0a267f40 ` ` : KERNELBASE!GetQueuedCompletionStatus+0x39
000007fe`ed72ea9e : ` `0addf649 ` ` : kernel32!GetQueuedCompletionStatusStub+0x11
000007fe`ed7066ae : ` `08ff25e0 ` `0000000c : clr!CopyPDBs+0x36ce
`7733f56d : ` ` ` ` : clr!StrongNameSignatureVerification+0x5a22
` : ` ` ` ` : kernel32!BaseThreadInitThunk+0xd
` : ` ` ` ` : ntdll!RtlUserThreadStart+0x1d

由于产品部署在多个生产环境下使用并未有其他客户反馈类似问题,相同操作系统情况下唯一区别就是安装.NET Framework 4.5,于是又想起去年碰到的Ajax POST问题。分析某个页面在第一次请求加载后客户端会发起一个Ajax POST获取用户数据,而这个请求没有完成返回时立刻打断继续重新请求问题立刻重现。既然大致了解问题的原因,接下去就是如何找出一个解决方案。参考了一些国外论坛并结合亲身试验参考如下:

1、操作系统升级至 Windows Server 2012,使用IIS 8.0。
2、将存在问题应用的应用程序池”托管管道模式”修改为”经典”。
3、卸载.NET Framework 4.5,重新安装.NET Framework 4.0。

参考链接:
http://social.technet.microsoft.com/Forums/en-US/43c113c7-3a78-4bb1-8cee-4662ef662a49/installed-net-45-framework-and-web-application-now-hang
http://*.com/questions/14963635/ie-double-postback-hangs-iis-7-in-integrated-managed-pipeline-mode-when-session
http://*.com/questions/15437524/managedpipelinehandler-for-an-ajax-post-crashes-if-an-ie9-user-navigates-away-fr/15484368#15484368
http://forums.iis.net/t/1164963.aspx

Installed .NET Framework 4.5 Ajax POST IIS hang的更多相关文章

  1. Electron – 项目报错整理(打包~1): WARNING: Make sure that .NET Framework 4.5 or later and Powershell 3 or later are installed, otherwise extracting the Electron zip file will hang.

    WARNING: Make sure that .NET Framework 4.5 or later and Powershell 3 or later are installed, otherwi ...

  2. .net framework多个版本在IIS服务器上时应注意-重新注册IIS-错误Server Application Unavailable

    今天客户一个附件上传的应用程序报错,服务器安装了.net 4.0 framework(还有1.0和2.0版本),因为有网站程序需要用到2.0,配置好站点后,附件程序是用的2.0,Mail程序选择版本为 ...

  3. app framework map及ajax方法

    $(function () { $.ajax({ url: 'Ashx/GetProductList.ashx', contentType: "JSON", success: fu ...

  4. IIS Hang Troubleshoot

    Your website maybe stop working and response very lowly. How to find out the reason? Below are the g ...

  5. Windows 10 (IIS 10)安装Microsoft Web Farm Framework Version 2.2 for IIS7问题

    But I got an error message "iis version 7.0 or greater is required to install Web Farm Framewor ...

  6. 如何调试IIS错误信息

    原文链接: http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag ...

  7. Install Typical IIS Workloads

    原文 Install Typical IIS Workloads Introduction The IIS 7.0 and above modular architecture is designed ...

  8. Installing IIS 8.5 on Windows Server 2012 R2

    原文 Installing IIS 8.5 on Windows Server 2012 R2 Introduction This document describes how to install ...

  9. ASP.NET IIS Registration Tool (Aspnet_regiis.exe)

    IIS Version Special cases for 32-bit versions of Aspnet_regiis.exe 6.0 You can run the 32-bit versio ...

随机推荐

  1. 已知GBK的某段码表,码表对应的字符

    for i in range(0xA1A2,0xA1A5):                                                                       ...

  2. Device eth0 does not seem to be present,delaying initialization解决方法

    Bringing up interface eth0:  Device eth0 does not seem to be present, delaying initialization. 在linu ...

  3. java定时器schedule和scheduleAtFixedRate区别

    package cn.lonecloud.test; import java.util.Date; import java.util.Timer; import java.util.TimerTask ...

  4. nginx自定义header支持

    今天配置nginx的时候遇到一个问题,直接访问接口没有问题,但是通过nginx转发之后,总是报token失效,无法获取token值,发现请求头丢失了. 默认是不支持非nginx标准的用户自定义head ...

  5. 将自己的SpringBoot应用打包发布到Linux下Docker中

    目录 将自己的SpringBoot应用打包发布到Linux下Docker中 1. 环境介绍 2. 开始前的准备 2.1 开启docker远程连接 2.2 新建SpringBoot项目 3. 开始构建我 ...

  6. web页面font-family显示

    font-family属性很简单,直接写在css或style样式中即可. 如: font-family: "Microsoft YaHei"; 但是如果希望电脑能正确的显示我们设置 ...

  7. 图片路径转base64字节码

    package product; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOE ...

  8. Dynamic Programming for TSP

    See how Dynamic programming working for TSP: Check this link: http://www.youtube.com/watch?v=IUzE1Mb ...

  9. 【Python + Selenium断言】之如何获取定位Web页面列表中的数据

    如下图所示: 当定位元素时,我想获取指定的某一列的某一行的断言,如图我只想获取jiancha1的值,有同学会说:直接定位不就好了.但是我们知道,列表的数据会时刻变动的,不能靠定死的路径,那该怎么办呢? ...

  10. java 对象锁和类锁的区别(转)

    java 对象锁和类锁的区别   转自; ) ); ; ) ); 上述的代码,第一个方法时用了同步代码块的方式进行同步,传入的对象实例是this,表明是当前对象,当然,如果需要同步其他对象实例,也不可 ...