我创建了一个监控实用程序,用于检查cpu,ram,驱动器空间统计信息和电子邮件(如果使用率超过设置阈值)。它在系统托盘中运行良好但我意识到当我退出Windows服务器时exe将停止。这让我相信我需要创建一个Windows服务。我想使用现有的GUI表单将数据保存到应用程序设置,并在Windows服务中使用这些设置。以下是我到目前为止采取的步骤,
public ProjectInstaller()
{
InitializeComponent();
ServiceProcessInstaller serviceProcessInstaller = new ServiceProcessInstaller();
ServiceInstaller serviceInstaller = new ServiceInstaller();
serviceProcessInstaller.Account = ServiceAccount.LocalSystem;
serviceProcessInstaller.Username = null;
serviceProcessInstaller.Password = null;
serviceInstaller.StartType = ServiceStartMode.Automatic;
serviceInstaller.ServiceName = "Server Monitoring";
this.Installers.Add(serviceProcessInstaller);
this.Installers.Add(serviceInstaller);
}
当我尝试通过installUtil安装时,我收到此错误
System.IO.FileNotFoundException:无法加载文件或程序集'file:/// C:\ Use rs \ AdminUser \ Desktop \ Temp \ Server'或其依赖项之一。系统不能 找到指定的文件..
谢谢!
答案 0 :(得分:0)
如果要将这些应用程序设置保存到与Windows服务位于同一目录中的文件中,那将是您的问题。 所有Windows服务都在C:/ Windows目录(或其中的子目录)中运行,因此当您访问文件时,您需要执行以下两项操作之一:
您可以使用以下代码行将正在执行的应用程序的“当前目录”更改回包含该exe的文件夹:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
这将使所有相关文件再次相对于可执行位置。
这个文件比其他文件更容易。系统文件是最难的。因此,如果您想要访问.config文件,那将是一场噩梦。