2014-04-04 74 views
0

我有2个应用程序:共享的app.config

  • Windows服务(与配置网站HTTP监听& API)
  • 控制工具(WPF应用程序)

控制工具的要求非常简单:

  • 启动/停止服务
  • 启动指向网站的浏览器(例如, http://local:5555

寻找称为“MyService”的Windows服务,检索其状态并在需要时启动它非常简单。但是,如何使用正确的链接启动浏览器? HTTP侦听器侦听的端口可以在我的Windows服务应用程序的app.config中配置,并且不可能发现侦听器。 app.config可以在2个应用程序之间共享吗?

我知道ConfigurationManagerOpenExeConfiguration(),但这会导致其他问题:

  • 我需要知道去哪里Windows服务安装
  • 读取配置可能会导致路径读取锁
  • 如果配置文件是加密的,我必须知道的关键

还有没有其他的解决方案,以实现这一目标?

回答

1

您可以使用注册表来交换数据。

// Create a Subkey 
RegistryKey newKey = Registry.CurrentUser.CreateSubKey("SOFTWARE\\SuperSoft\\App"); 

// Write Values to the Subkey 
newKey.SetValue("Value1", "Content1"); 
newKey.SetValue("Value2", "Content2"); 

// read Values from the Subkey 
if (SubKeyExist("SOFTWARE\\SuperSoft\\App")) 
{ 
    RegistryKey myKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\SuperSoft\\App"); 
    string firstApp = (string)myKey.GetValue("Value1"); 
    string secondApp = (string)myKey.GetValue("Value2"); 
} 
+0

奇怪的是,注册表激起我内心的同样的情绪,当我回想起我童年时第一次碰到热板时的那一刻。噢,让我们这样做..我猜... – Acrotygma