Test.Program 的类型初始值设定项抛出异常
The type initializer for Test.Program threw an exception
在一个 .net5.0 项目中,我试图从 txt 文件中读取所有邮件,它在半小时前工作,但突然当我更改一些名称以便更好地理解时它停止工作。
我从 app.config 文件中读取了 txt 文件位置,这是配置:
[![在此处输入图片描述][1]][1]
我阅读的关键是 LokacijaExportanihMailAdresa。
这是 app.config;
中的关键
<add key="LokacijaExportanihMailAdresa" value="txt_docs\Mailovi.txt"
这是我用来读取 txt 文件的代码:
class Program
{
public static int i = 0;
public static Timer aTimer = new Timer(Int32.Parse(ConfigurationManager.AppSettings.Get("VrijemeUMiliSekundama")));
public static string lokacijaMailova = ConfigurationManager.AppSettings.Get("LokacijaExportanihMailAdresa");
public static string posiljatelj = ConfigurationManager.AppSettings.Get("Posiljatelj");
public static string subjekt = ConfigurationManager.AppSettings.Get("Predmet");
public static string putanjaDoPoruke = ConfigurationManager.AppSettings.Get("Poruka");
public static int imaPrivitak = Int32.Parse(ConfigurationManager.AppSettings.Get("ImaAttachment"));
public static string putanjaDoPrivitka = ConfigurationManager.AppSettings.Get("Privitak");
public static string smtpServer = ConfigurationManager.AppSettings.Get("SmtpServer");
static void Main(string[] args)
{
var logger = NLog.LogManager.GetCurrentClassLogger();
logger.Info("Aplikacija je pokrenuta");
var mailovi = File.ReadAllLines(lokacijaMailova);
aTimer.Elapsed += (sender, e) => OnTimedEvent(sender, e, logger, mailovi, i++);
aTimer.Start();
Console.ReadKey();
}
}
这是错误:
2021-11-09 13:23:01.6441|Error|MailServis.Program|System.TypeInitializationException: The type initializer for 'MailServis.Program' threw an exception.
---> System.ArgumentNullException: Value cannot be null. (Parameter 's')
at System.Int32.Parse(String s)
at MailServis.Program..cctor() in C:\Users\djcumbaj\source\repos\MailServis\Program.cs:line 21
--- End of inner exception stack trace ---
at MailServis.Program.Main(String[] args) in C:\Users\djcumbaj\source\repos\MailServis\Program.cs:line 32 |
但在我将路径直接放入 File.ReadAllLines 后,它会读取文件,但接下来发生的事情是,当我的意思相同时,计时器会抛出相同的异常,它完全相同。
提前谢谢你。
您调用 ConfigurationManager.AppSettings.Get("ImaAttachment")
但您在 appSettings 中有 ImaPrivitak
。
在一个 .net5.0 项目中,我试图从 txt 文件中读取所有邮件,它在半小时前工作,但突然当我更改一些名称以便更好地理解时它停止工作。 我从 app.config 文件中读取了 txt 文件位置,这是配置: [![在此处输入图片描述][1]][1]
我阅读的关键是 LokacijaExportanihMailAdresa。 这是 app.config;
中的关键<add key="LokacijaExportanihMailAdresa" value="txt_docs\Mailovi.txt"
这是我用来读取 txt 文件的代码:
class Program
{
public static int i = 0;
public static Timer aTimer = new Timer(Int32.Parse(ConfigurationManager.AppSettings.Get("VrijemeUMiliSekundama")));
public static string lokacijaMailova = ConfigurationManager.AppSettings.Get("LokacijaExportanihMailAdresa");
public static string posiljatelj = ConfigurationManager.AppSettings.Get("Posiljatelj");
public static string subjekt = ConfigurationManager.AppSettings.Get("Predmet");
public static string putanjaDoPoruke = ConfigurationManager.AppSettings.Get("Poruka");
public static int imaPrivitak = Int32.Parse(ConfigurationManager.AppSettings.Get("ImaAttachment"));
public static string putanjaDoPrivitka = ConfigurationManager.AppSettings.Get("Privitak");
public static string smtpServer = ConfigurationManager.AppSettings.Get("SmtpServer");
static void Main(string[] args)
{
var logger = NLog.LogManager.GetCurrentClassLogger();
logger.Info("Aplikacija je pokrenuta");
var mailovi = File.ReadAllLines(lokacijaMailova);
aTimer.Elapsed += (sender, e) => OnTimedEvent(sender, e, logger, mailovi, i++);
aTimer.Start();
Console.ReadKey();
}
}
这是错误:
2021-11-09 13:23:01.6441|Error|MailServis.Program|System.TypeInitializationException: The type initializer for 'MailServis.Program' threw an exception.
---> System.ArgumentNullException: Value cannot be null. (Parameter 's')
at System.Int32.Parse(String s)
at MailServis.Program..cctor() in C:\Users\djcumbaj\source\repos\MailServis\Program.cs:line 21
--- End of inner exception stack trace ---
at MailServis.Program.Main(String[] args) in C:\Users\djcumbaj\source\repos\MailServis\Program.cs:line 32 |
但在我将路径直接放入 File.ReadAllLines 后,它会读取文件,但接下来发生的事情是,当我的意思相同时,计时器会抛出相同的异常,它完全相同。 提前谢谢你。
您调用 ConfigurationManager.AppSettings.Get("ImaAttachment")
但您在 appSettings 中有 ImaPrivitak
。