none
windows服务迁移到windows2008系统后无法正常运行 RRS feed

  • 问题

  • 之前写了一个使用pdfcreator对各种文档进行打印的windows服务,在XP系统和2003系统中都能够正常运行,但是最近迁移到windows2008后却无法正常运行了

    具体的情况如下

    windows服务主要功能,接收客户端发出的打印请求,将各类文件如html,doc,xls等使用pdfcreator进行打印,并将打印后的文件返回给客户端

    实现方式,使用c#编写的windows服务程序,开启一个TCP端口,负责通讯,文件传输等等功能,html文件打印使用.net提供的webbrowser控件,其他如doc,xls等office文件都是使用microsoft.office.interop.xxx实现的,主要流程是客户发出请求,发送一个文件类型,并将文件传给服务,服务按照文件类型使用相应的方式打开文件并调用打印方法,完成后将打印出来的文件(pdf等)传给给客户端。

    问题现象,在XP和2003下当服务调用打印方法后,打开pdfcreator的打印任务列表都能看到有打印任务并正常进行打印了,但是这个服务迁移到windows 2008后,调用打印方法后pdfcreator打印列表中没有产生任何任务,但是将服务改成普通应用程序运行却可以正常运行,不知道是什么原因,所以想问下windows2008运行服务和2003有什么区别吗?我的程序该怎么修改呢?

    2010年11月11日 1:36

全部回复

  • 应该是权限问题。把您的 Windows 服务部署的用户凭据改成 LOCAL SYSTEM 应该就可以了。这个可以通过 C# 项目源代码中的 ProjectInstaller 属性改,也可以直接在 Windows Server 2008 中的 services.msc 中右键属性中修改。
    Mark Zhou
    2010年11月11日 12:34
  • 谢谢

    不过应该不是你说的问题,从XP到2003到2008我用的都是.\administrator的权限,localsystem localservice也都试过,不行

    2010年11月12日 0:47