【发布时间】:2020-02-26 13:01:39
【问题描述】:
我开始使用 ASP.net 核心编写我的新网站 一切都在开发环境中正常运行:打开 VSCode 和 F5 运行。 但是在我将它们全部发布到 IIS 后,它运行时出现 404 错误
找不到此本地主机页面 没有找到该网络的网页 地址:https://localhost:1111/HTTP ERROR 404
页面连接数据库以运行后端操作时显示错误页面。 已发布 Web 中的任何不使用数据库的操作(例如指向另一个链接的 href、运行 javascript 验证等)都将在没有 404 错误的情况下运行
我会错过什么或做错什么吗?
这是我发布网站的步骤
- 打开终端并运行dotnet publish --configuration Release
- 将 bin\Release\netcoreapp2.2\publish 中的发布文件夹复制到 IIS 设置中的发布文件夹
- 打开 IIS 并使用 .net CLR 版本添加应用程序池为无托管代码
- 在上面添加带有应用程序池的网站,绑定类型为 https,主机名为 localhost,并勾选所有 3 个复选框(需要服务器名称指示,禁用 HTTP/2,禁用 OCSP 装订),SSL 证书为 IIS Express 开发证书
我忘记了引导我执行这些步骤的页面
【问题讨论】:
-
VS 代码应该使用 IIE express。这与 IIS 不同。那么您是否检查过 IIS 日志以获取子状态代码?除非错误的处理程序正在处理请求,否则连接数据库不应返回 404。请先查看 IIS 日志,如果状态码为 404.4。然后请确保您的服务器上已经安装了 ASp.net 核心网络托管包。
-
亲爱的 Jokies 这是发生错误时的日志 > ::1, -, 10/31/2019, 21:51:55, W3SVC3, DESKTOP-3DJJPOE, ::1, 1601, 951, 2127, 200, 0, GET, /, -, > ::1, -, 10/31/2019, 21:52:15, W3SVC3, DESKTOP-3DJJPOE, ::1, 10485, 1326, 222, 404, 0 , POST, /, -, web 提交一个包含用户名、密码的登录表单,并在控制器中执行验证操作,并与数据库交互。然后它返回上面的 404 错误,但是当我单击重定向到另一个页面或执行 javascript 验证的链接时,我安装了 .NET Core 2.2 Runtime & Hosting Bundle for Windows (v2.2.4)
-
“但是在我将它们全部发布到 IIS 之后”。如何?您需要编辑您的问题以显示您执行的确切步骤。
-
好的,我在上面的帖子中编辑了问题
-
@MingHieu 我注意到相同的 URL localhost:1111 在 GET 方法下工作正常,但在 POST 方法下失败。你的 Controller 是否支持 URL "localhost:1111" 的 POST 方法?因为它看起来不像是应用程序错误
标签: asp.net-core iis asp.net-core-2.1