前言
本文关注的是asp.net的Global.asax文件中 Application_Start的执行时机以及asp.net core中program.cs的main函数(重点是startup)的执行时机
1.Asp.Net
在Application_Start中添加了如下代码
代码语言:javascript复制 try
{
var iplist = Dns.GetHostAddresses(Dns.GetHostName()).ToList();
System.IO.File.WriteAllText(@"D:Loglog.txt", iplist.Select(p => p.ToString()).PackJson(), Encoding.UTF8);
if (iplist.Exists(p => p.ToString().Contains("10.xxx.xx.28")))//test_qa为10.xxx.xx.28特定机器的标记
{
System.IO.File.AppendAllText(@"D:Loglog.txt", "当前机器是28", Encoding.UTF8);
TurboMQConsumerConfig.Consumer();//MQ消费
}
else
{
System.IO.File.AppendAllText(@"D:Loglog.txt", "当前机器不是28", Encoding.UTF8);
}
}
catch (Exception ex) {
}
- 【×】只重新生成,日志没有产生。结论:项目构建重新生成并不会触发Application_Start
- 【√】设为启动项后启动(F5),产生日志。结论:项目启动执行触发Application_Start
- 【√】只重新生成了,然后通过url地址直接请求,产生日志。结论:url执行触发Application_Start
2.Asp.Net Core
在Startup中添加了如下代码
代码语言:javascript复制var iplist = Dns.GetHostAddresses(Dns.GetHostName()).ToList();
System.IO.File.WriteAllText(@"D:Loglogcore.txt", iplist.Select(p => p.ToString()).PackJson(), Encoding.UTF8);
string myEnvironmentValue = Environment.GetEnvironmentVariable("test_qa", EnvironmentVariableTarget.Process);
if (iplist.Exists(p => p.ToString().Contains("10.101.72.28")))//test_qa为10.101.72.28特定机器的标记
{
System.IO.File.AppendAllText(@"D:Loglogcore.txt", "当前机器是28", Encoding.UTF8);
}
else
{
System.IO.File.AppendAllText(@"D:Loglogcore.txt", "当前机器不是28", Encoding.UTF8);
}
if (myEnvironmentValue == "test_qa")//test_qa为10.101.72.28特定机器的标记
{
TurboMQConsumer<PollMQRegister>.GetInstanse();
}
- 【×】只重新生成,日志没有产生。结论:项目构建重新生成并不会触发Startup
- 【√】设为启动项后启动(F5),产生日志。结论:项目启动执行触发Startup
- dotnet core 必须run了才能访问url,不是部署在iis上的。
版权属于:dingzhenhua
本文链接:https://cloud.tencent.com/developer/article/2019173
转载时须注明出处及本声明