Installed .NET Framework 4.5 Ajax POST IIS hang
去年我已写过一篇关于安装.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://stackoverflow.com/questions/14963635/ie-double-postback-hangs-iis-7-in-integrated-managed-pipeline-mode-when-session
http://stackoverflow.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的更多相关文章
- 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 ...
- .net framework多个版本在IIS服务器上时应注意-重新注册IIS-错误Server Application Unavailable
今天客户一个附件上传的应用程序报错,服务器安装了.net 4.0 framework(还有1.0和2.0版本),因为有网站程序需要用到2.0,配置好站点后,附件程序是用的2.0,Mail程序选择版本为 ...
- app framework map及ajax方法
$(function () { $.ajax({ url: 'Ashx/GetProductList.ashx', contentType: "JSON", success: fu ...
- IIS Hang Troubleshoot
Your website maybe stop working and response very lowly. How to find out the reason? Below are the g ...
- 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 ...
- 如何调试IIS错误信息
原文链接: http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag ...
- Install Typical IIS Workloads
原文 Install Typical IIS Workloads Introduction The IIS 7.0 and above modular architecture is designed ...
- 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 ...
- 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 ...
随机推荐
- js 原型链(转)
1.1 理解原型链 JavaScript中几乎所有的东西都是对象,我们说数组是对象.DOM节点是对象.函数等也是对象,创建对象的Object也是对象(本身是构造函数),那么有一个重要的问题:对象从哪里 ...
- 【WP8】线程安全的StorageHelper
14-08-29 12:32更新:修复StorageHelper部分bug WP8以后提供了StorageFile的方式访问文件,StorageFile对文件的操作只提供了异步的支持,包括WP8.1 ...
- Run ASP.NET MVC site on mac (mono/xamarin studio)
我们选择用xamarin studio来测试,如果你直接进xamarin的官网,那么会有一个更好看的网站和更复杂的流程(比如需要注册),我们直接到mono项目找mac的支持吧,点此进入 相关sdk和a ...
- 【NLP】Stanford
http://web.stanford.edu/class/cs224n/syllabus.html https://www.youtube.com/watch?v=OQQ-W_63UgQ&l ...
- 复制js的“准”正确用法
function kobe(id) { var targetText = document.getElementById(id); try ...
- 二维码生成:使用 JavaScript 库QRCode.js生成二维码
QRCode.js:跨浏览器的javascript二维码生成库,支持html5的Canvas画布,没有任何依赖. Github 地址:https://github.com/davidshimjs/qr ...
- pycharm 对代码做静态检查
对于下面这种情况,java c这些提前编译的语言,不给你运行机会就立马报错了,但对于动态语言运行之后才能报错,用运行的方法来检查代码错误是在是太坑了,这是py对比静态语言的巨大劣势,尤其是代码文件多行 ...
- 修改centos的时间,解决时间比本地实际时间快了8小时
1.vi /etc/sysconfig/clock #编辑文件ZONE="Asia/Shanghai"UTC=false #设置为false,硬件时钟不于utc时间一致ARC=fa ...
- iphone弹出窗口效果的制作(Core animation, CALayer)
效果类似人人网微薄客户端的弹出效果 static CGFloat kTransitionDuration = 0.3; - (void)initView { UIWindow *window = [U ...
- Tomcat------如何查看80端口是否被占用
1.Window + R,打开“运行”窗口,输入cmd 2.输入netstat -nao,回车,一般来说80端口会被PID为4的程序占用 3.启动任务管理器,点击“查看”->“选择列” 4.勾选 ...