2010-12-10 96 views
3

我在MVC/IE8中遇到了一个很奇怪的问题,我想知道是否有人看到过类似的东西。我有一个URL,以http://application.mycompany/Controller.aspx/Action/ID1/ID2的形式返回excel电子表格(由于IIS的版本,我在路由中使用.aspx)。这从应用程序的页面打开,很好。我也有发送HTML代码的电子邮件,这些HTML代码包含链接,并且所有链接都可以打开,但它会提示错误:“无法从application.mycompany下载ID2,IE无法打开网站”。我检查过电子邮件中的HTML和页面上的链接位置,它们是相同的。如果我输入确切的链接文本(或从电子邮件中复制并粘贴)到IE地址栏中,它将再次失败,但如果我点击末尾地址栏中的相同文本并再次点击输入它加载并吐出文件。它似乎可以正常工作直接粘贴到FireFox中,但我无法检查点击链接并加载FF,因为我正在远程工作,而且我的Citrix桌面上没有Firefox,我也找不到任何人将它作为他们的默认浏览器(但因为它第一次工作,我会想象它会好的)。非常奇怪的ASP.NET MVC和IE8链接/ URL问题

有没有人看过这个或有任何想法可能会导致它,请?这个问题发生在多台机器上,因此就我所见,它不是一个奇怪的加载项/设置。

感谢

MH

----------------------------更新------- ---------------- 我使用Fiddler来查看发生了什么,除了时间戳之外,对两个请求的响应都是相同的。 失败响应: -

HTTP/1.1 200 OK 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Type: application/vnd.ms-excel; charset=utf-8 
Expires: -1 
Server: Microsoft-IIS/7.0 
X-AspNetMvc-Version: 1.0 
content-disposition: attachment;filename=Filename.xls 
X-AspNet-Version: 2.0.50727 
X-Powered-By: ASP.NET 
Date: Mon, 20 Dec 2010 10:31:52 GMT 
Content-Length: 2354 

<style type"text/css">.text { mso-number-format:\@; } .TableHead { background-color: #BDBDBD; } </style> 
....confidential file content removed 

成功的响应: -

HTTP/1.1 200 OK 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Type: application/vnd.ms-excel; charset=utf-8 
Expires: -1 
Server: Microsoft-IIS/7.0 
X-AspNetMvc-Version: 1.0 
content-disposition: attachment;filename=Filename.xls 
X-AspNet-Version: 2.0.50727 
X-Powered-By: ASP.NET 
Date: Mon, 20 Dec 2010 10:32:18 GMT 
Content-Length: 2354 

<style type"text/css">.text { mso-number-format:\@; } .TableHead { background-color: #BDBDBD; } </style> 

,只是重申,我产生第二次请求的唯一的事情就是点击地址栏中的URL文本生成第一个请求并回车。

我得到的错误是“”Internet Explorer无法打开此Internet站点。请求的网站不可用或无法找到。请稍后再试。”

+1

只是一个更新,这已经在另一台机器上测试过,并且这种确切的行为存在于IE中,但是如果您将默认浏览器更改为chrome,则首次打开链接。 – 2010-12-10 15:39:58

回答

1

引述similar discussion on the Sitepoint forums

它的缓存,如果你选择 无缓存IE可以”找到文件 保存它,但如果你允许缓存它 的作品。恼人的,因为同一个文件可以 在不同时间下载,如果事情已经改变 可能是不同的,所以缓存是有点 危险(我不得不后缀 文件名与时间戳,以避免 此,我认为)。 http://support.microsoft.com/kb/316431 所以这个修复了它 Response.Cache.SetCacheability(HttpCacheability。私人的); 但它仍然没有解释为什么它有时 工作,ESP直接从 网页链接

“这种现象是由设计” - 翻译:“我们不能得到这个工作 和CBA获得它的工作” - 神奇 Firefox,Opera和Chrome浏览器如何不 有这个问题......

0

我看到周围IE +展望+的mailto有大量文字链接一些wierdness。以上128个字符,mailto链接不与IE + Outlook中。

我会尝试减少的字符数在你的锚,看看你能得到它更可靠。

+0

Thx对于这个建议,我查了一下,URL只有83个字符长,再加上这样的情况也直接在IE中输入URL,甚至没有加载,或者点击后,outlook – 2010-12-13 09:55:46

+0

刚刚在我的家用笔记本电脑上测试过有Windows 7的,但没有前景,并且问题仍然存在,所以我不认为这是一个前景问题,THX的建议,但是,每个想法都有帮助.... – 2010-12-13 12:38:47

1

此知识库文章可能有助于一些启发:

http://support.microsoft.com/kb/316431

“想要允许此类操作的网站应删除无缓存头或头。”

+0

哎呀我没有注意到它被前面引用过。 – 2012-02-10 16:23:24

+0

谢谢。显示MS知道多少 - 它也适用于没有SSL的网站(如我们的网站)。 “这种行为是由设计”需要后缀“ - 由白痴设计”。 – 2012-02-17 09:08:04