最近公司弄新项目需要用 ASP.NET MVC,就把 IDE 升级到了 Visual Studio 2013,在开发的时候发现有好多请求一个本地 49925 的端口 。
很奇怪,一开始以为是 Visual Studio 2013 在创建项目的时候默认加进去的 JavaScript 文件或者是视图文件导致的,找了半天也没找到,经过在 FireBug 下查看代码发现,页面下面有如下的代码:
<script id="__browserLink_initializationData" type="application/json">
{"appName":"Firefox","requestId":"23b71f085f334e97969864ab934745c5"}
</script>
<script async="async" src="http://localhost:49925/4b38e516c0774211882dabde19ecda0f/browserLink" type="text/javascript">
然后就根据 browserLink 这个名字搜索了一下,发现 browserLink 是 Visual Studio 2013 的新功能。
什么是 Browser Link ?
这个 Browser Link 的功能就是通过一个脚本文件架起流程器和 Visual Studio IDE 之前的一个通信桥梁, 在启用 Browser Link 后, Visual Studio 会给网站注入一个 IHttpModule 模块对象, 然后在每个页面都会注册一段上面的脚本。
Browser Link 功能使用 SignalR 技术实现的。
说了这么多, Browser Link 功能到底是用来干什么用的?
现在 Broswer Link 功能比较简单,就是用来在 Visual Studio IDE 可以刷新浏览器中已经打开的页面, 为什么要在 Visual Studio IDE 中刷新页面?
有这么一个应用场景:假如你在开发一个页面,这个页面需要兼容 IE, GOOGLE, FIREFOX 和移动浏览器, 有可能你会同时使用这些流程器打开你的页面, 如果发现有某种问题,回到 VS IDE 进行修改, 修改完后可以在 Visual Studio IDE 点 "Refresh Linked Browsers" 来刷新所有浏览器以查看效果。
现在这个 "Browser Link " 只有这么一个刷新功能, 但是 Browser Link 功能可以编写扩展功能,可以自定义一些自己需要的功能。
如果不想使用这个功能只需要在 web.config 中的 appSettings 节点下加入如下代码即可。
<add key="vs:EnableBrowserLink" value="false"/>
http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx