【问题标题】:Configurable Windows Service - How and where to store configuration可配置的 Windows 服务 - 存储配置的方式和位置
【发布时间】:2013-11-14 17:11:09
【问题描述】:

我创建了一个 C# 应用程序来管理 ERP 和 CRM 之间的数据同步。此应用程序每 500 毫秒读取一次表,并通过 WebService 将数据发送到 CRM。 目前,我的应用程序有两个屏幕:第一个配置连接(ERP 的 DB 连接信息和 CRM 的 URL 和 WS 令牌),第二个带有启动按钮以启动循环线程。

我知道我希望我的应用程序只不过是一个 Windows 服务安装程序。我要做的是启动我的应用程序,配置 ERP 和 CRM 连接,然后单击“安装”按钮。单击此按钮时,将创建一个服务,并执行与我的应用程序现在单击“开始”按钮时相同的工作。

我已经阅读了这些链接Converting my application in a Windows ServiceMaking an existing exe with gui into windows service,当然还有http://msdn.microsoft.com/en-us/library/d56de412%28v=vs.100%29.aspx

这是我的问题:

如何制作可配置的 Windows 服务?我认为最简单的方法是将配置存储到实用程序和服务将共享的文件中。在哪里存储这些文件?该实用程序之后必须能够找到这些文件:注册表?

谢谢,

【问题讨论】:

    标签: c# .net windows-services


    【解决方案1】:

    在 .NET 中将应用程序或服务的设置存储在此 relative path Environment.SpecialFolder.ApplicationData 中是一种常见的做法

    【讨论】:

    • 但是在这种情况下,我的实用程序是否能够访问存储在 ApplicationData 中的服务配置文件?我可以根据需要存储它们吗,我的意思是在一个文件夹中并使用我指定的名称?任何权利问题?
    • 这个文件夹是专门为这些东西设计的,你不能遇到任何权限问题。几乎所有第三方应用程序都将其数据存储在那里。 Path.Combine(new String[] { Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"/YourServiceFolderName"}) 是您可以保存设置的目录。在访问之前不要忘记创建它;)
    • 哦,谢谢您提供这些信息。最后一个问题:由于服务配置不依赖于用户,我应该使用 CommonApplicationData 而不是 ApplicationData 吗?
    猜你喜欢
    • 2018-06-12
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    相关资源
    最近更新 更多