我不想在git页面上提出这个问题/错误,因为我想我只是错误地使用了包。
我在IIS10上运行了一个ASP MVC站点。实际的文件夹结构是:
x:/
library/ <-- Physical
Web Sites/
Site A/
Files/ <-- Virtual
Site B/
Site C/
使用IIS10,我在网站A下创建了一个名为Files的虚拟文件夹,其物理路径为X:/ library /(其原因是在站点之间共享资源并将内容转移到外部网站路径)。
用户可以将文件上传/下载到虚拟目录中。我也可以毫无问题地从那里加载图像。
但是,我似乎无法让Rotativa从我的应用程序中写入虚拟目录。显然命令行无论如何都看不到虚拟目录,但是从cmd到物理目录创建文件可以正常工作。
从应用程序内部:
X:/Web Sites/Files/Test.pdf
会产生Unable to write to destination
X:/library/Test.pdf
会产生Access to the path is denied
(尽管已经NETWORK SERVICE
完全控制了library
文件夹和子文件夹)
我使用的代码是:
var pdf_output= new ActionAsPdf("Summary", new { id = id }) {
FileName = String.Format("Summary_{0}.pdf",id.ToString()),
CustomSwitches = "--print-media-type"
};
byte[] pdf_data= pdf_output.BuildPdf(ControllerContext);
System.IO.File.WriteAllBytes(String.Format("xxx",id.ToString()), pdf_data);
使用各种目录路径组合代替&#34; xxx&#34;。
有没有人有这方面的经验可能会告诉我哪里出错了?任何帮助将不胜感激。
答案 0 :(得分:0)
没关系,解决了。我需要通过添加用户library
向物理IIS AppPool\Site A
目录授予相应的应用程序池权限。
如果有人试图调查,请提前致谢