gpt4 book ai didi

azure - ASP.NET Core API - 在 Azure 应用服务上获取 404,但在本地主机上工作正常

转载 作者:行者123 更新时间:2023-12-03 17:06:32 25 4
gpt4 key购买 nike

我有一个托管在 Azure 应用服务中的 ASP.NET Core 2.1 应用。当在本地执行时,我可以访问 Controller 。但是,当我托管在 Azure 应用程序中时,我收到了 404。以下是重现的最少步骤。

在 Visual Studio 2017 中添加一个新项目。选择 ASP.NET Core Web 应用程序。选择ASP.NET Core 2.1,API项目模板,无身份验证,配置为HTTPS。以自托管方式运行新应用程序(不使用 IIS)。浏览到 https://localhost:5001/api/values。我得到了预期的响应(尽管命令行上有一个有关无法验证 HTTPS 连接的异常)。

右键单击项目并选择发布。选择创建新的应用服务。我选择了现有的订阅、托管计划和资源组。我保留了默认的应用程序名称。创建应用程序。

浏览到 URL https://app_name.azurewebsites.net我看到了默认页面。浏览至https://appname.azurewebsites.net/api/values然后我得到了 404。

我确信我错过了一些非常愚蠢的东西,但我就是无法弄清楚。

最佳答案

造成不同行为的一个可能原因是标准Startup.cs ->Configure() 中的 if (env.IsDevelopment()) 分支,该分支将根据 ASPNETCORE_ENVIRONMENT 的值而变化或 DOTNET_ENVIRONMENT 环境变量。 These will default to production

就我而言,我完全删除了 Home Controller ,但无意中留下了 Startup.Configure 中指向的 app.UseExceptionHandler 中间件默认的Home/Error

因此,当我的应用程序部署到 Azure 时,发生了我在本地测试期间未收到的异常(例如 SQL 防火墙 IP 阻止问题),这意味着任何到错误页面的重定向都会导致 404。

if (env.IsDevelopment())
... << Local environment (ASPNETCORE_ENVIRONMENT = 'Development')
else
{
app.UseExceptionHandler("/Home/Error"); << Watch for this
...
}

关于azure - ASP.NET Core API - 在 Azure 应用服务上获取 404,但在本地主机上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55658948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com