asp.net-mvc C SSL握手问题? (当时:网页挂起,只清除浏览器缓存有帮助)
我遇到ASP.NET MVC Web应用程序的奇怪问题.很少有用户体验过表单超时和挂起,因此点击提交后它只
最后请看,因为我不断更新最新的调查数据.目前,我需要有关服务器端WireShark日志的帮助. 我遇到ASP.NET MVC Web应用程序的奇怪问题.很少有用户体验过表单超时和挂起,因此点击提交后它只会持续下去并且不会前进到下一页.奇怪的是,这是通过清除浏览器的缓存来解决的.我不明白这两件事是如何相关的.此外,用户报告它发生在FireFox 3中,但在FireFox 1.5和2.0中不会发生.我和许多用户无法在IE,任何FireFox以及Linux / Windows上重现这一点. 浏览器缓存如何以及为何会影响表单POST处理? 好的,我查看了用户和FireBug.我看到POST请求,并且在长时间超时后失败.服务器不接收请求 C 至少不是基本控制器的OnBeforeExecuting我在哪里进行日志记录,也不在IIS日志文件中.回复是空的.此外,一旦请求花了很长时间但最终执行 C 并且在服务器上我发现执行它只需要很少的时间. 据我所知,这发生在使用jQuery Form插件完成的AJAX请求上.我尝试在参数中设置cache:false,但没有成功. 实际上,我试过没有AJAX,简单提交 C 同样的.我还可以看到jQuery表单插件调用$.ajax()并返回.我看到它启动了POST请求.但我在IIS日志中没有在服务器上看到此请求,有时甚至在一分钟之后 C 有时它会在FireBug .Net窗格中中止. 有趣的是,清除FireFox缓存/ cookie /表单和发布数据有助于 C 一次尝试,下一篇文章也会挂起. 此外,请求以GUID的形式发送有关所选组件的信息.未选择组件时,它似乎正常.组件实际上是由JavaScript检查的隐藏复选框(不是在提交时,之前).这是POST数据中的“selected”参数.似乎没有选择任何组件时,它不会挂起,虽然我只试过一次,也许稍后会调查. 有这些额外信息的任何想法? Request info: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 ( .NET CLR 3.5.30729; .NET4.0C) Accept: */* Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Content-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequest Content-Length: 1288 Pragma: no-cache Cache-Control: no-cache发布数据 为了= 842f2988-abff-413C-a092-9dde00a8b9a8&安培;选择= f98c9ad8-49e0-4a9f-9966-9d3d01203aa5_a1d659c0-b8ec-4f91-ba2f-9d3d01203a4c&安培;选择= f98c9ad8-49e0-4a9f-9966-9d3d01203aa5_d6e1984e-227D-4bd0-b8d2- 9d3d01203a4d&安培;选择= f98c9ad8-49e0-4a9f-9966-9d3d01203aa5_0b7cbc1a-35f1-4db8-856b-9d3d01203a4c&安培;选择= f98c9ad8-49e0-4a9f-9966-9d3d01203aa5_0cc7ef9b-085f-4b50-ACDB-9d3d01203a4c&安培;选择= f98c9ad8-49e0-4a9f- 9966-9d3d01203aa5_ad273397-ed5d-49bb-b181-9d3d01203a4c&安培;选择= f98c9ad8-49e0-4a9f-9966-9d3d01203aa5_b5fbf67f-202f中-464B-a9e4-9d3d01203a4c&安培;选择= f98c9ad8-49e0-4a9f-9966-9d3d01203aa5_ae275579-8163-4f6b-9d36- 9d3d01203a4c&安培;选择= f98c9ad8-49e0-4a9f-9966-9d3d01203aa5_73fa066c-0467-4bc6-aa91-9d3d01203a4c&安培;选择= f98c9ad8-49e0-4a9f-9966-9d3d01203aa5_5020b52f-baa2-4aea-be10-9d3d01203a4d&安培;选择= f98c9ad8-49e0-4a9f- 9966-9d3d01203aa5_8b2cd95a-c014-4c83-9ec6-9d3d01203a4d& selected = f98c9ad8-49e0-4a9f-9966-9d3d01203aa5& submit = Add to Suite 已安装的WireShark.没有直接控制很难使用(远程用户遵循我的命令),但我可以看到,在单击提交后立即将TCP请求发送到服务器IP地址.所以浏览器会发出请求. 要求远程用户与IT /网络支持人员协作,以检查请求是否从客户端/到达服务器. 这是一个非常类似的问题,遗憾的是没有任何答案:https://stackoverflow.com/questions/3355000/my-iis-server-wont-serve-ssl-sites-to-some-browsers 这是来自服务器的WireShark日志.提交开始,然后发生一些SSL更改密码/握手(在90秒内!),然后在很长一段时间后请求最终失败. No. Time Source Destination Protocol Info 1 0.000000 11.22.33.44 192.168.1.9 TCP [TCP segment of a reassembled PDU] 2 0.000114 11.22.33.44 192.168.1.9 TLSv1 Application Data 3 0.000394 192.168.1.9 11.22.33.44 TCP https > 50950 [ACK] Seq=1 Ack=2305 Win=64690 Len=0 4 97.611245 192.168.1.9 11.22.33.44 TCP https > 50950 [RST,ACK] Seq=1 Ack=2305 Win=0 Len=0 5 97.752530 11.22.33.44 192.168.1.9 TCP 50958 > https [SYN] Seq=0 Win=8192 Len=0 MSS=1459 WS=2 SACK_PERM=1 6 97.752612 192.168.1.9 11.22.33.44 TCP https > 50958 [SYN,ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 WS=0 SACK_PERM=1 7 97.778024 11.22.33.44 192.168.1.9 TCP 50958 > https [ACK] Seq=1 Ack=1 Win=17508 Len=0 8 97.784462 11.22.33.44 192.168.1.9 TLSv1 Client Hello 9 97.785107 192.168.1.9 11.22.33.44 TLSv1 Server Hello,Change Cipher Spec,Encrypted Handshake Message 10 97.813970 11.22.33.44 192.168.1.9 TLSv1 Change Cipher Spec,Encrypted Handshake Message 11 97.814082 11.22.33.44 192.168.1.9 TLSv1 Application Data 12 97.814208 192.168.1.9 11.22.33.44 TCP https > 50958 [ACK] Seq=123 Ack=2555 Win=64647 Len=0 13 227.535270 192.168.1.9 11.22.33.44 TCP https > 50958 [RST,ACK] Seq=123 Ack=2555 Win=0 Len=0 解决方法 我强烈建议在服务器端和客户端使用wireshark,并查看实际发送的数据.我遇到了与此类似的奇怪错误,并且看到每个客户端和服务器之间的实际通信始终是有益的.我会从服务器端开始.捕获数据包,然后在POST上使用“follow tcp stream”.Wireshark Download Using Wireshark (编辑:商洛站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 应用程序服务层作为静态类
- ASP.NET网站管理系统退出 清除浏览器缓存,Session的代码
- asp.net-mvc C 如何设置AntiForgeryToken cookie路径
- asp.net – 测试Oracle存储过程的最简单的方法
- asp.net-mvc – 如何阻止用户在MVC3应用程序上登录/注册和其
- asp.net-web-api C WebAPI:403在发布网站后被禁止
- 什么是在asp.net中301重定向更推荐的方法?
- asp.net使用DataTable构造Json字符串的方法
- asp.net-mvc C ASP.NET MVC:处理取消按钮的正确方法
- asp.net-mvc – 帖子上的Mvc模型ID 0
- 受asp.net MVC启发的更好的WebForms
- asp.net – Html.Partial()跳过控制器动作
- asp.net-mvc – 使用IIS基本身份验证的OWIN身份验
- asp.net – Web Forms MVP项目有哪些好的资源?
- 为熟悉ASP.NET Web表单开发的人建议MVC3的周末学
- asp.net-mvc C 如何正确识别vs2008版本级别?
- asp.net – @ Url.Action在控制器中创建空值的参
- asp.net-mvc – 在.NET MVC上启用Http PUT请求
- 如何为Asp.Net中的所有子文件夹注册HttpHandler?
- ASP.NET自带对象JSON字符串与实体类的转换
- asp.net-core C 如何使用ASP.NET注册OData
- asp.net C MVC4 C ContextDependentView C
- asp.net-mvc-3 C 如何从ASP.NET MVC#输出中
- asp.net-mvc C 使用AD的ASP.NET MVC表单Aut
- asp.net-mvc C ASP.NET MVC中的WebApi [Fro
- asp.net C 适用于多个用户的EWS通知中心
- asp.net-mvc C 已经使用相同的参数类型定义
- ASP.Net C AJAX UpdatePanel中的Javascript
- asp.net-mvc C 未在ELMAH中记录的错误
- asp.net-mvc C MVC应用程序中的随机数生成