【发布时间】:2010-10-31 20:37:07
【问题描述】:
总结
我们有一个 ASP.NET 应用程序,它允许用户通过中间层(非常标准的东西)查询 SQL Server 数据库。当用户尝试为返回给他们的行生成 PDF 时。每组具有共同标识符的行都将在生成的 PDF 中“变成”一个单独的页面。
最初,我假设行数将是一个数量级,有利于将最终 PDF 通过管道传输到 ASP 响应流中并让用户将文件下载到他们的机器上,但新的要求表明行数行数非常大,远远超出了我设计的规模。
我目前的解决方案如下:
-
1234563完成,以便他们下载。
如果用户可以接受,我会创建两个
DataTables:一个包含实际数据,另一个包含 MetaData,例如保存结果 PDF 的位置、名称和其他元类型信息。然后我可以使用
DataTable.WriteXML在特定文件夹中生成“作业”文件。这一切都在一个单独的线程中完成,因此用户可以继续做他们想做的事情。
问题:
我真的想将作业 xml 文件存储在我们防火墙(共享网络文件夹)内的机器上,但出于安全原因,我似乎不能。有人告诉我,我可能想使用模拟并尝试过但无法让它发挥作用。
此应用程序的另一部分是“侦听”“输入”文件夹,并每小时(或类似的时间表)处理这些“作业”文件,将生成的 PDF 文件移动到必要的位置并发送电子邮件用户。
我已经让读取作业文件并生成 PDF 的部分正常工作,并且创建作业文件的部分正常工作(当我在防火墙内运行它时),但是当我在防火墙外运行它时,甚至尝试模拟,这没用。 (一直说“找不到网络位置”。
问题:
我这样做的方法是否正确?
如何跨防火墙写入这些文件?
有什么设计想法或建议吗?
提前致谢。
【问题讨论】:
-
SQL Server/Web 服务器在防火墙的哪一侧? (我假设它在外面?)
-
SQL Server 在防火墙内。
标签: c# asp.net pdf-generation impersonation firewall