Url.Content на Azure - PullRequest
       13

Url.Content на Azure

1 голос
/ 22 февраля 2011

У меня есть приложение ASP.NET MVC 2, в котором есть страница со ссылкой на файл PDF.

<a href="<%= Url.Content("~/Downloads/test1.pdf") %>">test1</a>

Каталог загрузок находится в MVCApplication1 / Downloads

.ISS, но возвращает страницу, не найденную при загрузке в Azure.

Ответы [ 3 ]

2 голосов
/ 23 февраля 2011

В visualstudio в свойствах pdf пришлось изменить действие «Построить» на «Содержимое» и «Копировать в выходной каталог», чтобы «Копировать» всегда, чтобы это работало с Azure

2 голосов
/ 22 февраля 2011

Проверьте путь, который испускается в 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 голос
/ 22 февраля 2011

Это предположение ...

Но я думаю, что, возможно, экземпляр 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

Если это все еще не работает, то, возможно, рассмотрите возможность:

  • изменение расширения файла
  • перемещениеPDF в хранилище BLOB-объектов - теоретически было бы более эффективно обслуживать этот статический контент непосредственно из хранилища BLOB-объектов
  • , добавив в приложение динамический прокси-сервер для этого файла (не идеально!)
...