ASP.NET Core 5 MVC 网络应用程序在部署到 IIS 后在某些页面中返回错误的请求错误
ASP.NET Core 5 MVC web app returning bad request errors in some pages after deployment to IIS
我什么都试过了。我根据 Microsoft 文档配置 Windows Server 2019,并成功将 .NET 5 Web 应用程序部署到 IIS。
我可以进入登录页面。我什至可以进入忘记密码页面,他们表现得很好。但是,当我尝试执行任何操作(发送忘记密码 link 或登录页面)时,我从服务器收到“错误请求”。我还没有找到解释原因的方法。
我已经尝试了几次,我的意思是在谷歌搜索中找到了一些东西,但没有任何帮助。这包括在 .NET Core 应用程序中禁用 https,尝试使用 Startup 中的 app.UseDeveloperExceptionPage();
指令获取详细的错误页面,等等,但没有任何效果。我总是收到这个试图执行任何操作的页面:
如果有人能帮助我或指出正确的方向,我将非常非常感激。
谢谢
PD:如果它与问题有任何关系,错误,至少我可以重现的两个(因为我什至无法登录)发生了,我想(也许不会)重定向到 Microsoft Identity 中的另一个页面时。
编辑:你们其中一位询问了代码。谢谢。
如您所见,我的应用程序的忘记密码屏幕中没有任何特定内容。这是来自 Microsoft Identity 的脚手架代码。我什至编辑了它,只在其中放了一行代码,这是默认的 return 代码,如下所示:
public async Task<IActionResult> OnPostAsync()
{
return RedirectToPage("./ForgotPasswordConfirmation");
}
如您所见,该代码没有什么特别之处。再次调用它的 html 是 Microsoft Identity 的脚手架,几乎没有变化(我的意思是,可能有一些 CSS 和视图数据的新值):
但话又说回来,忘记密码页面实际上在前端显示并且看起来不错,但我立即尝试输入我的电子邮件并在此页面中单击 enter,(另外,只是 Microsoft Identity 的脚手架):
没有任何反应。我收到了错误的请求。这里没有魔法,也没有自定义代码。发生了一些愚蠢的事情。
EDIT II:是的,它在本地运行完美。只有在部署到 IIS 时才会出现奇怪的行为。
编辑 III:我在我的 .NET Core APP 中编码并启用了日志记录,并将其写入文件,我想我终于得到了,至少是错误(不是原因):
但是为什么??在服务器浏览器中启用 Cookie 无济于事,同样的问题。有人有比禁用防伪规则登录和忘记密码页面更好的主意吗?
谢谢
出于某种原因,当我将应用程序的第一个版本部署到 IIS 中时,我认为从 IIS link 中浏览它是个好主意。当然,在新装的Windows Server 2019中,IE依然是默认浏览器。我通过 VPN 直接连接到我的网络应用程序的 IP,但这次使用 Chrome。你猜怎么着?所有问题都消失了。是的,尝试将 .NET Core Identity 等现代框架与 IE 一起使用是个坏主意。
我什么都试过了。我根据 Microsoft 文档配置 Windows Server 2019,并成功将 .NET 5 Web 应用程序部署到 IIS。
我可以进入登录页面。我什至可以进入忘记密码页面,他们表现得很好。但是,当我尝试执行任何操作(发送忘记密码 link 或登录页面)时,我从服务器收到“错误请求”。我还没有找到解释原因的方法。
我已经尝试了几次,我的意思是在谷歌搜索中找到了一些东西,但没有任何帮助。这包括在 .NET Core 应用程序中禁用 https,尝试使用 Startup 中的 app.UseDeveloperExceptionPage();
指令获取详细的错误页面,等等,但没有任何效果。我总是收到这个试图执行任何操作的页面:
如果有人能帮助我或指出正确的方向,我将非常非常感激。
谢谢
PD:如果它与问题有任何关系,错误,至少我可以重现的两个(因为我什至无法登录)发生了,我想(也许不会)重定向到 Microsoft Identity 中的另一个页面时。
编辑:你们其中一位询问了代码。谢谢。
如您所见,我的应用程序的忘记密码屏幕中没有任何特定内容。这是来自 Microsoft Identity 的脚手架代码。我什至编辑了它,只在其中放了一行代码,这是默认的 return 代码,如下所示:
public async Task<IActionResult> OnPostAsync()
{
return RedirectToPage("./ForgotPasswordConfirmation");
}
如您所见,该代码没有什么特别之处。再次调用它的 html 是 Microsoft Identity 的脚手架,几乎没有变化(我的意思是,可能有一些 CSS 和视图数据的新值):
但话又说回来,忘记密码页面实际上在前端显示并且看起来不错,但我立即尝试输入我的电子邮件并在此页面中单击 enter,(另外,只是 Microsoft Identity 的脚手架):
没有任何反应。我收到了错误的请求。这里没有魔法,也没有自定义代码。发生了一些愚蠢的事情。
EDIT II:是的,它在本地运行完美。只有在部署到 IIS 时才会出现奇怪的行为。
编辑 III:我在我的 .NET Core APP 中编码并启用了日志记录,并将其写入文件,我想我终于得到了,至少是错误(不是原因):
但是为什么??在服务器浏览器中启用 Cookie 无济于事,同样的问题。有人有比禁用防伪规则登录和忘记密码页面更好的主意吗?
谢谢
出于某种原因,当我将应用程序的第一个版本部署到 IIS 中时,我认为从 IIS link 中浏览它是个好主意。当然,在新装的Windows Server 2019中,IE依然是默认浏览器。我通过 VPN 直接连接到我的网络应用程序的 IP,但这次使用 Chrome。你猜怎么着?所有问题都消失了。是的,尝试将 .NET Core Identity 等现代框架与 IE 一起使用是个坏主意。