【发布时间】:2019-02-27 13:24:10
【问题描述】:
我们面临一个问题,在本地,当使用 IIS Express 时,Startup 类的方法在应用程序启动后立即被调用,即使没有启动浏览器。 (这是一个 Db 迁移)
但是,当应用程序部署到 IIS 时,Startup 类仅在首次请求站点后运行。
是 IIS/AspNetCore 模块的错吗?如果是的话,除了在部署后进行查询之外,是否可以强制启动 Kestrel?
【问题讨论】:
-
你是在进程内还是进程外运行它?
-
我想它默认是进程内的?非托管代码的应用程序池。
-
不,默认情况下它不在进程中。
-
那么它就出过程了。 =)
-
in proc 和 out of proc 的区别在于 IIS 是否充当 Kestrel 的反向代理。在 out of proc(之前的默认设置)的情况下,Kestrel 运行应用程序和 IIS 代理请求。使用 in proc(新的默认设置),IIS 直接托管应用程序,不再涉及 Kestrel。在任何一种情况下,您仍然有一个在 IIS 中运行的应用程序池。默认情况下,应用程序池将设置为“按需”,这意味着它将在一段时间不活动后自行关闭,然后在有请求满足时再次启动。您想将其更改为“始终运行”。
标签: iis asp.net-core entity-framework-migrations kestrel-http-server