去年我已写过一篇关于安装.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的更多相关文章

  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. ios模拟器已安装但xcode无法显示

    最近把系统抹盘重装了, 然后用Time Machine恢复到原始状态, 一切安好, 但是使用xcode的时候发现一个模拟器都没有了: 各种折腾, 重装SDK啊, 重装xcode啊,最后发现, 如果你的 ...

  2. Unity3D学习笔记——Android远程真机调试(Unity Remote)

    前言:当使用Unity开发移动端的游戏,特别是使用到手机的传感器,如重力感应等,调试的时候,很麻烦, 因为每次都需要编译成APK后安装到手机中测试,而Unity Remote便能很好的解决这个问题,U ...

  3. CorelDRAW中如何再制对象详解

    再制对象指的是快捷地将对象按一定的方式复制为多个对象,此种复制是复制的复制,再制不仅可以节省复制的时间,再制间距还可以保证复制效果.本教程将详解如何在CorelDRAW软件中再制对象. CorelDR ...

  4. Python打包-Pyinstaller

    我们知道,Python很优雅,很值得学习.但是Python是解释性语言,代码需要有Python解释器才能执行,相比较我们平时直接运行exe等可执行文件多了一步的麻烦. 于是,希望能将Python程序打 ...

  5. Javascript富文本编辑器

    分享几款Javascript富文本编辑器 ueditor jqframework xheditor htmlbox kindeditor wymeditor jhtmlarea markitup ck ...

  6. selenium +chrome headless Manual 模式渲染网页

    可以看看这个里面的介绍,写得很好.https://duo.com/blog/driving-headless-chrome-with-python from selenium import webdr ...

  7. Java使用泛型实现栈结构

    泛型是Java SE5.0的重要特性,使用泛型编程可以使代码获得最大的重用.由于在使用泛型时要指明泛型的具体类型,这样就避免了类型转换.本实例将使用泛型来实现一个栈结构,并对其进行测试. 思路分析:既 ...

  8. Java通过复选框控件数组实现添加多个复选框控件

    编写程序,通过复选框控件数组事先选择用户爱好信息的复选框,在该程序中,要求界面中的复选框数量可以根据指定复选框名称的字符串数组的长度来自动调节. 思路如下: 创建JPanel面板对象: 使用JPane ...

  9. c#事件Unity与.Net对比

    今天在看Unity3d的书,发现上面的调用事件比较特殊,比如说按钮事件 该方法写在OnGUI方法中if(GUILayout.Button("按钮1")) { //执行事件的处理 } ...

  10. grid简单布局

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...