天蓝色中的 Web 应用程序 http 404 错误,但在本地运行

Posted

技术标签:

【中文标题】天蓝色中的 Web 应用程序 http 404 错误,但在本地运行【英文标题】:Web app http 404 error in azure but runs locally 【发布时间】:2021-01-17 10:45:26 【问题描述】:

我正在尝试创建一个连接到我的 Azure SQL 数据库并从数据中读取的 Web api,我使用了 VS19 中的“API”模板并添加了我自己的文件,我在本地运行了应用程序(模板天气预报工作很好),我使用邮递员测试了我的 API。然后我将我的 api 直接从 VS 部署到我在 Azure 中的应用服务,但是当我转到 URL 时,我收到以下错误:

找不到此securemessaging.azurewebsites.net 页面没有网页 找到网址: https://****.azurewebsites.net/ HTTP 错误 404

当它在本地运行时,有人可以帮我从 azure 运行该应用程序吗?我不确定我哪里出错了。下面是我的解决方案资源管理器的图片。

【问题讨论】:

您是如何发布的?你在 wwwroot 里面有什么? 嗨@sajeetharan,我开始构建、发布并将其发布到我已经创建的天蓝色应用服务,我似乎找不到 wwwroot 的文件,你知道这会是什么吗? 只需导航到securedmessaging.scm.azurewebsites.net,您就可以看到 wwwroot 请参阅此文档以从visual studio c-sharpcorner.com/article/…发布 嗨@Reeves62,如果您遗漏了任何文件,请检查 kudu 网站 Sajeetharan 在评论中提供的内容。 【参考方案1】:

为网址找到网页:https://securedmessaging.azurewebsites.net/ HTTP ERROR 404

您提到该应用程序是一个 ASP.NET Core Web API 应用程序,它不包含和提供默认页面,因此它会导致 404 Not Found在没有完全限定的 URI 的情况下访问站点时出错。

要向 API 端点发出请求,您可以尝试:

https://securedmessaging.azurewebsites.net/WeatherForecast 

或者

https://securedmessaging.azurewebsites.net/api/brokers/action_name_here

此外,如果您希望提供显示在网站根 URL 处的默认页面,您可以尝试:

1) 在 wwwroot 文件夹下创建Default.html

2)在Startup.csConfigure方法中调用UseDefaultFiles方法

app.UseDefaultFiles();

app.UseStaticFiles();

app.UseRouting();

测试结果

【讨论】:

啊,太棒了,这可以通过使用 API 端点检查和添加默认 html 页面来实现。谢谢你。【参考方案2】:

在我的情况下,Startup.cs 中缺少以下几行

app.UseEndpoints(endpoints =>
            
                endpoints.MapControllers();
            
        );

在 startup.cs 的配置部分添加这些行修复了问题。

【讨论】:

以上是关于天蓝色中的 Web 应用程序 http 404 错误,但在本地运行的主要内容,如果未能解决你的问题,请参考以下文章

Java Web报错: GET http://localhost:8080/ 404 (Not Found)

为啥JSP页面运行时报的404错?

大家来找茬-SpringMVC中Tomcat正常启动,始终访问不了Controller,出404错

前台没有错 报警404

/WEB-INF 中的 JSP 返回“HTTP 状态 404 请求的资源不可用”

/WEB-INF 中的 JSP 返回“HTTP 状态 404 请求的资源不可用”