我有一个ASP.NET MVC 2应用程序,其页面包含指向pdf文件的链接
<a href="<%= Url.Content("~/Downloads/test1.pdf") %>">test1</a>
下载目录位于MVCApplication1 / Downloads
这在本地和ISS上工作正常,但返回上传到Azure时找不到的页面。
答案 0 :(得分:2)
检查HTML中发出的路径。它可能与Azure数据中心/群集相关,如果您的客户端位于Azure之外,则对您的客户端毫无意义。
如果您看到“http://RD1204900029029/Downloads/test1.pdf”之类的内容,那就是您的问题。您需要使用应用程序逻辑发出实际路径,以说明负载均衡器代表您所做的一些魔术。
使用请求本身提供的URL信息的最佳方式。我无论如何都不是ASP.NET高手,因此可能有一种更简洁的方法(类似于Url.Content),但这样可以使用
尝试
HttpContext.Current.Request.Url.Host
所以
<%
var host = System.Web.HttpContext.Current.Request.Url.Host;
%>
<a href="<%= host + "/Downloads/test1.pdf" %>">test1</a>
答案 1 :(得分:2)
在pdf属性中的visualstudio中,必须将构建操作更改为内容并复制到输出目录,以便始终复制以使用Azure
答案 2 :(得分:1)
这是猜测......
但我认为Azure IIS实例可能不包含PDF作为已知的MIME类型。
要调整此尝试,请将mime类型添加到应用的web.config文件中: http://blogs.iis.net/bills/archive/2008/03/25/how-to-add-mime-types-with-iis7-web-config.aspx
如果这仍然不起作用,那么可以考虑: