我需要获取用户输入,以便存储我的Windows服务将生成的文件。
我想我可以通过读取用户对我服务的on start事件中的变量的输入来做到这一点?然后在我的xml编写器中使用此变量。
这可能吗?或者有更好的方法吗?
答案 0 :(得分:1)
Windows服务无法再与桌面交互。他们永远不应该拥有,因为这是一个巨大的安全漏洞。
正确的设计是在安装程序中放置一个自定义对话框,以输入存储在安全自定义公共属性中的用户值。然后使用此属性更新注册表值或xml键/值对类型属性。然后重构您的服务类以将该资源用作配置变体点。
重点是配置设置应该在您的服务尝试启动之前很久就设置好了。
答案 1 :(得分:0)
如果您要执行任何需要服务UI的操作,请停止。这不是一个好主意,非常气馁。从我所看到的,人们将创建一个单独的程序来修改Windows服务设置,然后重新启动服务。现在,如果您只是想找到一种获取非硬编码信息的方法,我只需使用app.config文件存储设置,然后在服务启动时引用它。我见过其他人也使用注册表,但我不能告诉你哪种方式更好。这是一个链接http://msdn.microsoft.com/en-us/library/ms379611(v=vs.80).aspx,其中包含很多关于My.Settings的信息,即使它有点过时了。一旦你创建了一个设置,你只需要在onstart事件期间引用它。所以你可以这样做:
dim filePath as string = My.Settings.FilePath
HTH
瓦德