C# 窗口服务在从自定义安装程序安装后未选取 Log4Net 设置

本文关键字:安装 选取 Log4Net 设置 程序 服务 自定义 窗口 | 更新日期: 2023-09-27 18:36:59

我有一个客户端应用程序,它是一个带有dll,exe和配置文件的窗口服务器。

我已经为它创建了一个自定义安装程序,它将在程序文件中复制它并更新其配置。

这是我正在使用的代码

//read config and update
string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)+"''EventLogTracer.exe"; //this is app.exe path not app.exe.config path
Configuration evetconfig =ConfigurationManager.OpenExeConfiguration(path);
evetconfig.AppSettings.Settings.Remove("baseUri");
 evetconfig.AppSettings.Settings.Add("baseUri", "https://192.168.1.79:443/rest");
evetconfig.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

我的app.exe.config文件中也有log4net配置。我根本没有碰。我的安装程序也有相同的log4net设置。

现在我创建了它的 MSI 文件并通过安装它来运行不同的机器。

现在在我的本地机器上,它安装完美,并且选择所有设置和log4net设置。一切都很完美。

在我的虚拟机上,我尝试安装它。它已安装并将数据发布到服务器。但它没有拾取 log4net 设置,也没有写入任何日志。

这里有什么问题,我不费吹灰之力。有人可以帮忙吗?

谢谢

C# 窗口服务在从自定义安装程序安装后未选取 Log4Net 设置

我在 IIS 上部署的 WCF 应用程序遇到了类似的问题,结果证明这是一个与权限相关的问题。 我知道您没有使用 IIS,但您的问题听起来也与权限相关。

生产中使用什么操作系统? 服务器 2008? 如果是这样,他们是否比以前的Windows版本锁定了程序文件的权限? 尝试完全控制将日志写入所有用户的文件夹,看看是否有效。 如果是这样,您就知道这是一个权限问题,然后您可以确定需要为哪些用户设置哪些特定权限(而不是让所有用户完全控制)。