我正在尝试托管我在 dotnet core 中完成的 API,这是非常标准的东西,访问并从数据库返回数据。我以前部署到 IIS(不是在这台机器上),通常都顺利,但这次不行。
我已经在 IIS 上创建了 WebApp,启动了 WACS 来创建并分配证书,然后运行它,一切正常,DNS 指向正确,我可以从 API 中检索一些数据,但是,几个请求之后我得到了这个:
服务不可用。
嗯,这很奇怪,该应用程序能够在 Kestrel 中完美运行,我只需执行它,cmd 窗口就会弹出提示说它正在托管该应用程序,但是一旦我将它移动到 IIS,一切都会变得一团糟,经过几次重试后它似乎失败了。
我检查了事件查看器,以下是正在发生的事情:
好的,太好了,应用程序似乎已经成功启动了。
过了一会儿,发生了这样的事情:
等什么?为什么 IIS 试图关闭该应用程序?在仅 Kestrel 模式下运行 exe 时,它工作正常。
我做了什么:
我已进入设置并更改了这些:
我已经禁用了快速失败保护,因为担心会出现一些异常情况导致它被关闭。
似乎不是这样... 经过几次请求之后它仍然死机了。
我已将此用户添加到文件夹的权限中:
测试连接告诉我:
这可能是问题所在吗?如果是,为什么它能够处理一些请求,然后尝试自行关闭?
有人能帮助我吗?我从来没有遇到过 IIS 试图关闭其自身应用程序的问题。
PS:应用程序日志告诉我它刚刚关闭:
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
Content root path: D:\IIS Root\RVGL API\
info: Microsoft.Hosting.Lifetime[0]
Application is shutting down...
而 IIS 日志只向我显示请求,它提供几个 200 请求,然后只提供 503 请求。
编辑:我在另一台计算机上创建了一个虚拟机并将文件发送给它,发生了完全相同的事情。我被难住了。