如果从 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 应用程序正常工作?的主要内容,如果未能解决你的问题,请参考以下文章