У нас есть служба 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 генерирует эту часть.
В заключение, я не уверен, что я даже работаю в правильном направлении с вышеуказанным подходом. Мои знания о лазури по-прежнему минимальны.
Любая помощь / помощь / решение будет принята с благодарностью.
Большое спасибо.