ASP.NET Core (React) 应用程序 - IIS 上的 404.15

问题描述 投票:0回答:0

我发现了很多关于这个问题的话题,但不管我怎么改都不管用。我很绝望,因为我不明白哪里出了问题。

如果在 IIS Express 上运行,我的应用程序工作正常。

我一部署到 IIS,它就开始抱怨“查询字符串太长”

我不明白的是它为什么调用 Account\Login - 我的应用程序没有控制器或任何视图。它是 ASP.NET Core React 模板,我们不使用控制器,但我们的通信完全通过 SignalR。我们甚至没有 API 控制器。

我尝试按照许多地方的建议设置 web.config(例如 here 但在许多其他线程中建议) - 它没有帮助。

我已经确定代码中的问题是 Program.cs/Startup .cs 文件中的授权设置。但是,它是根据 Microsoft 指南完成的。

在我的 Program.cs 中,我有这个来配置身份验证:

builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();
builder.Services.AddAuthorization(options => options.FallbackPolicy = options.DefaultPolicy);

如果我通过 IIS Express 运行应用程序,它加载正常,对用户进行身份验证,一切似乎都运行良好。将其部署到 IIS 服务器后,我立即收到此错误:

注意:我注意到即使在 IIS Express 上运行,它仍然会向 /Account/Login 发送请求,但由于某种原因它不会使应用程序崩溃。

我真的不明白的是,为什么它调用帐户/登录路径,它根本不存在,我没有在代码中的任何地方设置它。如前所述,我的应用程序没有控制器或视图。它是通过 SignalR 与服务器通信的 React 应用程序(但还没有走那么远,所以 SignalR 还没有涉及)。

如果我将上面的代码更改为:

builder.Services.AddAuthentication(NegotiateDefaults.AuthenticationScheme).AddNegotiate();
builder.Services.AddAuthorization(options => options.FallbackPolicy = null);

然后它不会崩溃,但它也不会登录windows用户。

过去两天我尝试了很多东西,但无法弄清楚,哪里出了问题。

我很欣赏任何可能出错的想法。

c# authentication iis authorization .net-6.0
© www.soinside.com 2019 - 2024. All rights reserved.