如果从 Visual Studio 2019 发布而中间没有 API Mgmt,如何让 Azure API 应用程序正常工作?

Posted

技术标签:

【中文标题】如果从 Visual Studio 2019 发布而中间没有 API Mgmt,如何让 Azure API 应用程序正常工作?【英文标题】:How do I get an Azure API App to work if published from Visual Studio 2019 without API Mgmt in between? 【发布时间】:2020-12-13 15:30:22 【问题描述】:

我使用的是 Visual Studio 2019 版本 16.7.2。

我有一个名为 JobBank.API 的 API 项目。在 Visual Studio 中,我的项目设置中的 App URL 是 http://localhost://6705。我还在 Startup.cs 中创建并配置了一个 Swagger 文件:“/swagger/JobBankOpenAPISpecification/swagger.json”。

我使用 Visual Studio 将 API 项目发布到 Azure API 应用服务。该 URL 是“http://jobbank-api-demo.azurewebsites.net。在我发布它之后,浏览器窗口会显示该 URL 并显示 500 错误,说“jobbank-api-demo.azurewebsites.net 目前不能处理这个请求。”。

此外,当我使用“/swagger.json”尝试该 url 时,我收到 500 错误。

我需要做什么?

【问题讨论】:

【参考方案1】:

.net cores 2.0 版本中存在此问题的错误。我们目前使用的3.1版本,我亲自测试过,这个问题应该已经解决了。

我先发截图看看是不是你想要的结果。

从图中我们可以看出我已经在azure上部署了我的测试网站,也可以打开swagger.json文件,没有500 Error

所以,我认为您应该检查您的代码。你可以download my test code from github。

当你测试我的代码时,你应该修改wwwroot文件夹下index.html文件中的链接。当你部署demo时,你会得到404错误。不用担心,你需要在网址附上/index.html

当你完成所有操作后,你会得到和我一样的结果。

尝试解决您的问题时遇到的详细信息:

当我在 startup.cs 文件中修改默认路由时。

当我在项目中添加这些代码时,它会得到500 Error。因此,如果您的代码具有相同的配置,我建议您将其删除,并使用 url rewrite

【讨论】:

这就是我在 Startup.Config() 中所拥有的: // 在 UseHttpsRedirection 之后调用 app.UseSwagger(); app.UseSwaggerUI(setupAction => setupAction.SwaggerEndpoint( "/swagger/JobAssistOpenAPISpecification/swagger.json", "ArticleBank API"); setupAction.RoutePrefix = "swagger"; ); app.UseRouting(); // app.UseAuthentication(); app.UseAuthorization(); app.UseEndpoints(endpoints => endpoints.MapControllers(); ); 你试试我的方法了吗?

以上是关于如果从 Visual Studio 2019 发布而中间没有 API Mgmt,如何让 Azure API 应用程序正常工作?的主要内容,如果未能解决你的问题,请参考以下文章

无法从 Visual Studio 2019 16.6.2 调试 Blazor 托管的 webassembly 3.2.0

我无法从 Visual Studio 2019 登录 Azure 服务

如何将当前分支与 Visual Studio 2019 中的另一个分支进行比较?

visual studio2019安装时显示硬盘内存不足?

Visual Studio 2019 中的构建错误不一致地显示在错误列表中

Visual Studio 2019 无法识别从 GitHub 提取的新文件