【发布时间】:2018-05-06 13:37:58
【问题描述】:
我们有一个使用 DevExpress XtraReports 生成 pdf 文件的 wcf 服务。
这通常是如何工作的,我们在 web.config 中有物理目录 Example C:\PdfDocs\,我们在执行 devexpress ExportToPdf 函数时将其指定为路径。这在普通虚拟机上运行良好。
我们现在正忙于迁移到 Microsoft Azure 环境,但我无法让它工作。
我的设置 - wcf 服务创建为应用服务。不幸的是,我不能随意给出名字,所以让我们假设以下内容:
应用服务名称 - testdocservice, 网址 Azure 给 - https://testdocservices.azurewebsites.net
我尝试过的:
在应用程序设置中,我创建了一个虚拟目录。在项目本身中,我创建了一个虚拟目录将指向的文件夹。
虚拟路径为https://testdocservices.azurewebsites.net/ItinDocs,物理路径为site\wwwroot\ItinDocuments
这是正确设置的,因为我已经通过 FTP 测试 pdf 对其进行了测试,然后点击以下网址: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 正在生成该部分。
总之,我不确定我是否使用上述方法朝着正确的方向努力。我对 azure 的了解仍然很少。
任何帮助/协助/解决方案将不胜感激。
非常感谢。
【问题讨论】: