首页 > 解决方案 > Windows 服务中随机出现 System.ArgumentNullException

问题描述

我的 WCF 服务已经部署,我一直面临这个奇怪的问题。它已设置为在出现错误时自动重新启动。

我一直在观察我的服务随机停止。而且我没有得到任何相同的日志。

它一直在给我以下例外

Service cannot be started. System.ArgumentNullException: Value cannot be null.
Parameter name: path
   at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
   at System.IO.StreamWriter..ctor(String path, Boolean append)
   at CommonNameSpace.Generator.Utility.ExceptionLog(Exception ex) in C:\Users\downstreamdev01\source\repos\Project\MyService\Myservice.Solution\Myservice.BusinessLogic\Utility.cs:line 22
   at MyServiceNamespace.MyService.OnStart(String[] args)
   at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

这是它指向的方法的代码。

public static void ExceptionLog(Exception ex)
        {
            string gh = GetConfigurationValue("ErrorLog");
            StreamWriter swFileLog = new StreamWriter(GetConfigurationValue("ErrorLog"), append: true);
            StringBuilder sbErrorLog = new StringBuilder();

            sbErrorLog.AppendLine("******* ERROR Log  -  START **********");
            sbErrorLog.AppendLine("[Date Time]: " + DateTime.Now.ToString());
            sbErrorLog.AppendLine("[ex.Source]: " + Convert.ToString(ex.Source));
            sbErrorLog.AppendLine("[ex.Message]: " + Convert.ToString(ex.Message));
            sbErrorLog.AppendLine("[ex.InnerException]: " + Convert.ToString(ex.InnerException));
            sbErrorLog.AppendLine("########### StackTrace - START ###########");
            sbErrorLog.AppendLine(" ");
            sbErrorLog.AppendLine("[ex.StackTrace]: " + Convert.ToString(ex.StackTrace));
            sbErrorLog.AppendLine("[ex.Target Site]: " + Convert.ToString(ex.TargetSite));
            sbErrorLog.AppendLine("########### StackTrace - END ###########");
            sbErrorLog.AppendLine(" ");
            sbErrorLog.AppendLine("******* ERROR Log  -  END **********");
            swFileLog.WriteLine(sbErrorLog.ToString());
            swFileLog.Close();
        }

我无法理解这里发生了什么。当我尝试重新启动它时,它一直显示无法启动 Windows 服务,错误 1064错误。但是我随后重建了 Windows 服务项目并尝试再次启动它并启动它。

谁能告诉这里可能是什么问题?或可以防止此类事情的可能方法?

标签: c#.netwindows-servicesstreamwriterargumentnullexception

解决方案


推荐阅读