|
这几天又遇到了一个比较奇葩的问题,解决方案不是很难,但是如果不知道的话,还是比较烦(本人困扰了两天)。
先来讲一讲问题所在。博主本来写了一个asp.net页面上的超链接。
<asp:Content ID="ContentMuse" ContentPlaceHolderID="ContentPlaceHolderMDL" runat="server">
<div>
<h1>Upload</h1>
<br />
<asp:Panel ID="mainPanel" runat="server">
<table>....</table>
</asp:Panel>
<br />
<span style="white-space:pre"> </span> <a href="file:///\\10.6.1.111\d">here</a>
</div>
</asp:Content> source很简单,主要的问题出现在
<a href="file:///\\10.6.1.111\d">here</a>
这段代码在VS2012本地调试的时候没有任何问题。但是客户反映,source经发布到IIS服务器之后就挂了。具体表现为,点击超链接没有任何反应。
我测试的时候,使用的是另外一台电脑,打开超链接完全没有问题。于是赶紧远程到客户的机器那里确认了一下,的确是打不开。
当时有以下的几个猜想:
①共享文件夹权限问题。
②IE版本问题。
③IIS配置问题。
④source问题。
⑤主机的hosts,路由问题
source和共享权限问题是最先排除的,因为我在测试的机器上完全可以打开。
经过一番折磨,hosts和路由也被排除了。在此提出一个小插曲,打开网站的时候如果用http://localhost/....打开网站,超链接没有问题。但是如果使用ip访问就跪了,于是好奇ipconfig了一下,才发现那台机器有3个ip。。。于是一个一个试,过程不再叙述。
IIS的check过程中,我想到使用虚拟目录,这样可以直接在网站下面link到共享目录,经过试验是没有问题的。但是目录奇丑无比。。。。
最后不得已,IE开始从IE11一级一级往下降。效果不明显。客户那里是IE9,我当时测试用的是IE6,。于是一一比对,发现问题来了。
internet选项中添加你的网站到信赖列表,具体参照 http://jingyan.baidu.com/article/6f2f55a1876bafb5b93e6c99.html。
这样可能还是解决不了问题,那么就在同标签下,取消勾选“启用保护模式”。重启浏览器,OK啦~~
这次经历锻炼了意志力和吐血能力。。。。。。。
另:
期间我也查了不少相关的问题,发现很多解决方案是修复IE的bat,在此本人经过测试之后,认为此方法有扯淡嫌疑。
深层次方面的原因在csdn上貌似有见过稍微靠谱点的:IIS的权限比VS调试的时候低。也间接说明了为什么localhost可以成功——因为权限高,可以绕开保护阻拦。
也发现曾经有很多人也遇到过这样问题,但网上都没有明确给出解决方案。希望可以帮助到一些人。
|