WCF Azure создает PDF-файл в виртуальном каталоге с DevExpress - PullRequest
0 голосов
/ 06 мая 2018

У нас есть служба wcf, которая использует DevExpress XtraReports для создания PDF-файла.

Как это обычно работает, мы имеем в web.config физический каталог Пример C: \ PdfDocs \, который мы указываем в качестве пути при выполнении функции devexpress ExportToPdf. Это нормально работает на обычной виртуальной машине.

Сейчас мы заняты переходом на среду Microsoft Azure, и у меня возникают проблемы с тем, чтобы заставить это работать.

Моя настройка - служба wcf создается как служба приложений. К сожалению, я не могу давать имена, поэтому предположим следующее:

Имя службы приложения - testdocservice, Url Azure дает - https://testdocservices.azurewebsites.net

Что я пробовал:

В настройках приложения я создал виртуальный каталог. В самом проекте я создал папку, на которую будет указывать виртуальный каталог.

Виртуальный путь - https://testdocservices.azurewebsites.net/ItinDocs, а физический путь - сайт \ wwwroot \ ItinDocuments

Это правильно настроено, так как я проверил его в FTP-тесте в формате pdf, а затем нажал следующий URL: https://testdocservices.azurewebsites.net/ItinDocs/test.pdf

Итак, в сервисе wcf я рискнул и установил место для рендеринга PDF в «site \ wwwroot \ ItinDocuments» - это не сработало.

Исключение было следующим: доступ к пути 'D: \ Windows \ system32 \ site \ wwwroot \ ItinDocuments \ TestQuote21.pdf' запрещен.

Затем я попытался использовать пример Server.MapPath:

QuoteV3 oQuote = new QuoteV3();
            oQuote.DataSource = dSource;
            oQuote.ExportToPdf(System.Web.HttpContext.Current.Server.MapPath($"~{ConfigurationManager.AppSettings["DocLocation"]}{fileName}"));

DocLocation выглядит следующим образом: site \ wwwroot \ ItinDocuments \

Это тоже не сработало. Выдается следующая ошибка:

'~ https: /testdocservices.azurewebsites.net/ItinDocs/TestQuote21.pdf' не является допустимым виртуальным путем.

Я думал, что первый символ «~» может быть проблемой, поэтому я удалил его и получил ту же ошибку, что и выше - «https: /testdocservices.azurewebsites.net/ItinDocs/TravelQuote21.pdf» не является допустимым виртуальным путем.

Затем я заметил, что вышеупомянутые ошибки имеют только одну косую черту после https. На данный момент я не уверен, может ли это быть причиной проблемы, а затем, как ее исправить, так как Server.MapPath генерирует эту часть.

В заключение, я не уверен, что я даже работаю в правильном направлении с вышеуказанным подходом. Мои знания о лазури по-прежнему минимальны.

Любая помощь / помощь / решение будет принята с благодарностью.

Большое спасибо.

1 Ответ

0 голосов
/ 06 мая 2018

Это можно закрыть, так как я вместо этого настроил хранилище Azure, и мои PDF-файлы вместо этого сохраняются в контейнере.

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...