首页 > 解决方案 > WCF Azure 使用 DevExpress 在虚拟目录中创建 PDF 文件

问题描述

我们有一个使用 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 正在生成该部分。

总之,我不确定我是否使用上述方法朝着正确的方向努力。我对天蓝色的了解仍然很少。

任何帮助/协助/解决方案将不胜感激。

非常感谢。

标签: c#azurepdf

解决方案


这可以关闭,因为我设置了天蓝色存储,而我的 pdf 文件保存在容器中。

谢谢。


推荐阅读