在将.Net Core 3.1应用部署到IIS中时,可能会遇到应用不会自动启动的问题。这是因为.Net Core 3.1应用默认需要手动启动。
要解决这个问题,可以在应用的Program.cs文件中添加以下代码来自动启动应用:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
})
.UseWindowsService(); // 添加此行代码
}
在上面的代码中,通过调用UseWindowsService()方法来指定应用作为Windows服务运行。这样,当将应用部署到IIS中时,应用会自动启动。
另外,还需要在应用的.csproj文件中添加以下代码来指定应用为自承载:
netcoreapp3.1
InProcess
AspNetCoreModuleV2
在上面的代码中,AspNetCoreHostingModel指定了应用的托管模式为InProcess,AspNetCoreModuleName指定了托管模块的名称为AspNetCoreModuleV2。
通过添加上述代码并重新部署应用,应用将在IIS中自动启动。