IIS 7 和 Windows Server 2008 上的 WCF 服务用户调用的 DLL 似乎没有默认打印机
我有一个 WCF 服务,它包装了一些生成报告 PDF 的旧版 DLL。该遗留代码在桌面应用程序中运行良好,但当通过 WCF 服务调用时,PDF 页面大小由虚拟屏幕大小(页面大小纵横比变为 4:3)而不是实际纸张大小驱动。
我已在 HKEY_CURRENT_USER 下导出打印机的各种注册表项,并在 HKEY_USERS.DEFAULT 下重新导入它们,并且我已确保“每个人”都可以使用本地打印机。但 PDF 的结果仍然是错误的。
该站点在 Windows Server 2008 上的 IIS 7 中运行。该站点有自己的 32 个 AppPool,以专门创建的用户身份运行。该站点启用了匿名身份验证并禁用了 ASP.NET 模拟。
奇怪的是,如果我让 AppPool 作为我自己运行,则报告 PDF 的页面大小正确为 8.5 x 11。但当我将其设为专门创建的用途时,页面大小为 10.67 x 8.00 英寸(4:3 比例,例如 1024x768)。
我缺少什么?
I've got a WCF service that wraps some legacy DLLs that generate report PDFs. That legacy code works great in a desktop app, but when invoked via the WCF service, the PDF page size is driven by virtual screen size (the page size apsect ratio becomes 4:3) instead of an actual paper size.
I've exported the various registry keys for printers under my HKEY_CURRENT_USER and re-imported them under HKEY_USERS.DEFAULT, and I've made sure a local printer is available to "Everyone". Still the PDFs come out wrong.
The site is running in IIS 7 on Windows Server 2008. The site has its own 32-but AppPool, running as a specially created user. The site has Anonymous Authenticatione nabled and ASP.NET Impersonation disabled.
Oddly, if I make the AppPool run as myself, the report PDFs have a correct 8.5 x 11 in page size. But as soon as I make it the specially created used, the page size is 10.67 x 8.00 in (4:3 ratio, e.g. 1024x768).
What am I missing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不太熟悉 WCF 服务,但如果它们是真正的 Windows 服务,那么它们看不到默认打印机就不足为奇了。他们可能也看不到网络共享。只需在用户帐户而不是本地系统帐户下运行服务就可以解决问题。
I'm not real familiar with WCF services, but if they're true Windows services then it's not surprising they don't see the default printer. They probably can't see network shares either. Simply running your service under a user account rather than the local system account should solve the problem.