天蓝色中的 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.cs
的Configure
方法中调用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)
大家来找茬-SpringMVC中Tomcat正常启动,始终访问不了Controller,出404错