我们已经在Azure门户中建立了一个应用程序服务项目,然后使用Visual Studio DevOps进行了项目部署。当我转到http://MyAzureSite.azurewebsites.net(此处为URL)时,可以确认该服务已启动并正在运行。
但是当我添加“ api / ControllerName / getStatus”时,出现了404错误。
从我的本地计算机发出的呼叫运行正常。
http://localhost:52686/api/status/getStatus
但不是:
http://MyAzureSite.azurewebsites.net/api/status/getstatus
GetStatus的签名看起来不错:
[HttpGet]
public List<Status> GetStatus()
答案 0 :(得分:1)
我们在最新的.NET Core 3.1 LTS版本中遇到了同样的问题。我们发现了可能导致此问题的多种原因。这是我们的发现:
ControllerBase创建一个没有视图支持的控制器。控制器用于视图支持。我们有一个API终结点,如果它正在扩展Controller并且没有视图,则在Azure中部署时将无法访问它。没有错误或任何东西。只是无法达到。
如果通过Azure门户创建App Service / Web App,则一开始将无法访问任何终结点。我们不确定为什么会这样,但是我们想出了使它重新运行的方法。转到App Service的配置,然后执行以下步骤:
现在您应该可以再次访问API端点
这些是我们遇到的一些问题以及解决方案。希望他们能够帮助您,并从“我们解决问题”的日子中拯救您。只是因为另一个未知原因使它停止工作。当我发现更多破坏API和App Services的东西以及找到针对它们的解决方案时,我将更新此答案。
答案 1 :(得分:0)
我们不得不再次正确地重建项目,其创建方式不正确。