从自定义安装程序安装后,c#窗口服务未拾取log4net设置

从自定义安装程序安装后,c#窗口服务未拾取log4net设置,c#,windows-services,installation,windows-installer,log4net,C#,Windows Services,Installation,Windows Installer,Log4net,我有一个客户端应用程序,它是一个带有DLL、exe和配置文件的窗口服务器 我已经为它创建了一个自定义安装程序,它将在程序文件中复制此文件并更新其配置 这是我正在使用的代码 //read config and update string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location)+"\\EventLogTracer.exe"; //this is

我有一个客户端应用程序,它是一个带有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设置,也不会写入任何日志

这里有什么问题,我不需要动脑筋。有人能帮忙吗


谢谢

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


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

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


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

您确定log4net引用已标记为copy local=true,并且已部署在目标计算机上吗?您能否确认日志文件位于该计算机上?是的,该日志文件由安装程序在该计算机上创建,具有相同的log4net设置。是的,它的副本是真实的。有时它也会在日志中拾取和写入。但有时并非如此。您确定log4net引用已标记为copy local=true,并且已部署在目标计算机上吗?您能否确认该日志文件位于该计算机上?是的,该日志文件由安装程序在该计算机上创建,具有相同的log4net设置。是的,它的副本是真实的。有时它也会在日志中拾取和写入。但有时不会。