c# - 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 正在生成该部分。
总之,我不确定我是否使用上述方法朝着正确的方向努力。我对天蓝色的了解仍然很少。
任何帮助/协助/解决方案将不胜感激。
非常感谢。
解决方案
这可以关闭,因为我设置了天蓝色存储,而我的 pdf 文件保存在容器中。
谢谢。
推荐阅读
- bash - 使用源时找不到脚本文件
- c - 如何在 Windows 10 上安装英特尔 Cilk 以进行 C/C++ 并行编程?
- apache - 虚拟主机子域在 AWS EC2 上不起作用
- html - html web 无法识别 .css 文件
- excel - 在输入框中输入 0 时,代码不会执行
- python - 强制 celery 使用 StrictRedis
- wordpress - Woocommerce price_ exclude_tax 与 price_included_tax 相同
- javascript - 从 Blob 下载的 Excel 文件在受保护的视图中打开
- c# - 如何让 Visual Studio 调试器完全忽略原始源文件位置
- javascript - LinkedIn oauth 错误缺少必需的参数“client_id”