发现问题

这是来自一位网友的提问:

本着求真务实的态度,我打开了 AppBoxPro 项目,本地调试果然发现 Page_Load 进入了两次!

其实在没测试之前,我就有了大概的方向,因为AppBoxPro是需要先登录的,莫非因为权限问题被重定向了一次,但是F12打开调试窗口,发现请求的的确确只有一个:

分析问题

之前好像也遇到过类似的问题,貌似是图片标签设了空的src属性导致的( <img src="">),网上查了一下,的确有很多人遇到这个问题。

比如这个帖子:https://www.cnblogs.com/Simcoder/archive/2011/12/01/2270256.html

但是我在页面上检查了一遍,虽然有 img 标签,但是其 src 属性都不为空!

没办法,还是调试看看参数吧,毕竟两次进入 Page_Load 总该有所不同吧,来看下请求的URL:

果然发现问题,解码后第二次的请求URL是:http://localhost:7086/default.aspx?ReturnUrl=/__browserLink/requestData/e176fc91b6574240afa3a4f0f95e9ebd?version=2&version=2

看到其中的 __browserLink 我好像突然明白了,这个不就是 Visual Studio 提供的一个工具嘛,好像是 VS2013 之后才引入的,可以让用户在VS中点击刷新按钮直接刷新相应的浏览器窗口,不过我对这玩意不感冒,从来不用过罢了。

打开页面源代码,就能看到这个请求来自何处了:

解决问题

知道问题的根源,解决起来就很简单了,这里有两个方法。

第一种方法简单粗暴,直接禁用VS Browser Link,反正我也没用过:

第二种方法是给 VS Browser Link 放行,这个根本不需要进行身份认证,和网站的静态资源做同样的处理,修改Web.config文件:

<location path="icon">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="res">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="res.axd">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="__browserLink">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>

注意,上面的 __browserLink 配置项就是我们新增的!

搞定!

等等

好像有点问题,既然是一个被拦截的 URL:http://localhost:7086/default.aspx?ReturnUrl=/__browserLink/requestData/e176fc91b6574240afa3a4f0f95e9ebd?version=2&version=2

为啥前面的 F12 看不到这个请求,这个不合理吧!

的确如此,既然是一个HTTP请求,就不可能逃出 F12 的监控,我们再次运行页面,发现这个请求却原来是一个 AJAX 请求:

前面我们使用 Doc 过滤项,自然是看不到这个 AJAX 请求了。

至此,问题完美解决。

不忘初心,砥砺前行!

【经验分享】ASP.NET 的 Page_Load 执行了2次,真的!的更多相关文章

  1. 【原创】大叔经验分享(83)impala执行多个select distinct

    impala在一个select中执行多个count distinct时会报错,比如执行 select key, count(distinct column_a), count(distinct col ...

  2. Selenium执行测试脚本稳定性的一些经验分享交流

    Selenium执行测试脚本稳定性的一些经验分享交流 公司的自动化WEB测试框架IATA已上线运行了一段时间,期间发现一些脚本稳定性的问题,与大家分享一下. CASE执行游览器:ie firefox ...

  3. 经验分享:如何用grep对PHP进行代码审计

    这是一个常见的误解- 企业需要购买复杂和昂贵的软件来发现应用程序中安全漏洞:而这些专门的软件应用程序,无论是黑盒或白盒,开源或商业,都能很快的发现安全漏洞. 事实是:所有这些专业的漏洞扫描工具都有其特 ...

  4. MVP 2015社区大讲堂之:在ASP.NET应用中执行后台任务

    昨天下午,在微软的MVP 2015社区大讲堂上给大家分享了一个题目:在ASP.NET应用中执行后台任务.这是一点都不高大上,并且还有点土气的技术分享.不过我相信很多人都遇到过这样的问题. 虽然是一个很 ...

  5. Expression Blend4经验分享:文字公告无缝循环滚动效果

    这次分享一个类似新闻公告板的无缝循环滚动效果,相信很多项目都会应用到这个效果.之前我也百度了一下,网上的一些Silverlight的文字或图片滚动效果,都是一次性滚动的,如果要做到无缝循环滚动,多数要 ...

  6. 原创:分享asp.net伪静态成目录形式iis如何设置

    服务器租用详解asp.net伪静态成目录形式iis如何设置: 一.首先介绍一下asp.net伪静态成html后缀iis如何设置的 iis6 伪静态 iis配置方法 图解 1.右键点击 要设置网站的网站 ...

  7. thinkphp开发技巧经验分享

    thinkphp开发技巧经验分享 www.111cn.net 编辑:flyfox 来源:转载 这里我给大家总结一个朋友学习thinkphp时的一些笔记了,从变量到内置模板引擎及系统变量等等的笔记了,同 ...

  8. 线上Linux服务器运维安全策略经验分享

    线上Linux服务器运维安全策略经验分享 https://mp.weixin.qq.com/s?__biz=MjM5NTU2MTQwNA==&mid=402022683&idx=1&a ...

  9. 在ASP.NET应用中执行后台任务

    在ASP.NET应用中执行后台任务 昨天下午,在微软的MVP 2015社区大讲堂上给大家分享了一个题目:在ASP.NET应用中执行后台任务.这是一点都不高大上,并且还有点土气的技术分享.不过我相信很多 ...

随机推荐

  1. 【Mysql】重启: mysql.service: Service hold-off time over, scheduling restart.

    参考链接:http://sharong.iteye.com/blog/2262760 重启mysql服务器 (/etc/init.d/mysql stop  /etc/init.d/mysql sta ...

  2. redis 安装和单机多节点集群

    环境: centOs系统 一.安装redis: 1.下载安装(先装c编译器yum -y install gcc) $ wget http://download.redis.io/releases/re ...

  3. PATB 1004 成绩排名 (20)

    1004. 成绩排名 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入n名学生的姓名.学号.成绩,分 ...

  4. js避坑历险记

    代码改变世界,世界改变码农,码农改变代码! 我就是我,我就是一个码农的武林. 前方JS巨坑出没,请注意集中力! 巨坑1:js精度问题 前段时间去一家物流公司面试,做了一个js题,印象尤为深刻: var ...

  5. 在linux中,&和&&, |和|| ,&> 与 >的区别

    对应刚接触linux命令的小伙伴们来说,这些符号一定是很困扰的下面我们一起来看这些符号区别和用法 & 表示任务在后台执行,如要在后台运行 如: [root@localhost local]# ...

  6. 基于Dapper的开源Lambda扩展LnskyDB 2.0已支持多表查询

    LnskyDB LnskyDB是基于Dapper的Lambda扩展,支持按时间分库分表,也可以自定义分库分表方法.而且可以T4生成实体类免去手写实体类的烦恼. 文档地址: https://lining ...

  7. logging,包

    包 import 方式 所有对包的操作,都相当于对包下的__init__操作 from a.b.c import d b 必须 是包 import 最后只有一个层级 相对导入 . 代表当前路径, .. ...

  8. HDU 5527:Too Rich(DFS+贪心)***

    题目链接 题意 给出p块钱,现在要用十种硬币凑出,每种硬币有c[i]个,问最多能用多少个硬币. 思路 首先确定,对于每个硬币就是能用小的替换就不用大的. 所以,可以先把硬币尽量用小的替换,如果小的不够 ...

  9. HDU 5616:Jam's balance(背包DP)

    http://acm.hdu.edu.cn/showproblem.php?pid=5616 题意:有n个物品,每个重量为w[i],有一个天平,你可以把物品放在天平的左边或者右边,接下来m个询问,问是 ...

  10. AlwaysOn 执行备份任务

    备份 使用维护计划向导创建备份 启动维护计划向导 填入计划名称,选择每项任务单独计划 选择完整备份和清除任务 配置完整备份任务,选择备份数据库 设置备份文件保存位置, 指定压缩备份,设置执行计划时间为 ...