一个winform服务器端转换程序,我想做成windows服务,这样就可以自动启动。
windows 服务程序     可以有界面吗?

解决方案 »

  1.   

    Windows的设计初衷是就为了没有界面,要是想有界面你可以换一种方式,控制台/Window Form/WPF
      

  2.   

    你完全可以使用一个普通的桌面程序和Windows服务程序通讯,而实现通过界面操作那个服务程序。经典的例子是SQL Server。SQL Server的服务没有界面,无需登录就可以跑。但是可以通过独立的Management Studio去操作管理它,但是后者是独立的。
      

  3.   

    你可以用服务作为自动处理的程序,再用个frm作为管理程序,可以通过一些参数来连接两者关系,比如数据
      

  4.   

    可以。但是需要在服务的参数设置中,设置“允许桌面交互”。通常当你搞是一个比较重要、甚至有些庞大的服务时,你可能仅搞一个非常简单、只有十几行代码的“守护进程”服务程序,然后用它每隔几秒钟就通过Process对象查询一下进程,并且启动真正的业务服务进程。而这个业务服务进程则可能是Console的程序、WPF的程序,甚至可能是一个Excel或者Word文档(带有宏的),都可以。
      

  5.   

    “有界面的”基本上应该做一个客户端应用程序来设计。例如你可以在windows server的安装路径下某个子目录,把一个wpf桌面小程序的click once发布文件拷贝进去,然后网路上的任何终端都可以运行这个目录下的setup.exe程序来安装到自己的桌面,并且可以每次启动时(或者启动后)自动从这个原始目录更新版本。这样,虽然部署在一起(所谓部署,其时就是copy,因为.net程序只要copy即可运行),但是其实仍然是“服务器-客户端”分开的。你的“有界面的”程序就是客户端程序,它跟服务器程序进行通讯。
      

  6.   


    请问是怎么通讯的,访问共同的配置文件?    读取共享数据的数据库表?都可以。也可以借助wcf之类的方式通讯。
      

  7.   

    谢谢,了解了一点   click once
      

  8.   

    谢谢,了解了一点   click oncewindows服务会像程序那样死掉、关闭吗?     如果死掉,会自动重启吗?
      

  9.   


    这个方法比较好,就不用修改原来的winform程序。    “守护进程”服务程序来监督 winform