将.NET Core 3.1 Web应用部署到Azure应用服务后的200状态响应

xuo3flqw  于 2022-11-17  发布在  .NET
关注(0)|答案(1)|浏览(196)

有人遇到过这个问题吗?我收到了一个200的响应,但是主体什么都没有。我可以在本地找到这个测试路径(/api/Test/),所以路径是正确的,我可以在生产应用程序中找到我的swagger文档(/swagger/index.html)。
我已经调整了我的数据库连接,以确保没有任何干扰,并删除了我的SignalR代码。一个新创建的.NET Core 3. 1 Web API将正确地命中天气控制器,但我无法获得一个简单的字符串来返回任何东西,即使我收到了200响应代码。

我重构了我的数据库连接,因为我发现它在Azure中的诊断问题中导致错误。我移动了SignalR的CORs策略,并将其删除。
我重新订购了我的AddScoped和AddSingletons。
要在最简单的HttpGet中返回的字符串

dffbzjpn

dffbzjpn1#

我 试 着 访问 你 的 昂首阔步 的 网站 https://your_app_name.azurewebsites.net/swagger/index.html#/ 和 它 的 工作 很 好 。
这 意味 着 你 已经 成功 了 。 但是 我 还 没有 看到 图片 中 你 的 http 请求 的 服务 器 信息 。 所以 我 猜 你 可能 使用 了 linux 环境 。 而且 对于 swagger 项目 , windows 和 linux 之间 有 一些 不同 的 行为 。
调试 项目 时 , 默认 url 为 :

https://localhost:port/swagger(/index.html),

中 的 每 一 个
但 在 Linux 中 , 默认 URL 为 :

https://localhost:port

格式
这 就是 为什么 你 面临 这个 问题 。 请 使用 下面 的 代码 来 更改 开始 URL 。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    ...
    app.UseSwagger();
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "My Test1 Api v1");
        // Add this line, it will work for you
        c.RoutePrefix = string.Empty;
    });

    app.UseHttpsRedirection();

    app.UseRouting();

    app.UseAuthorization();

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

格式

相关问题