【问题标题】:Web API works locally but doesn’t work on azureWeb API 在本地工作,但不能在 azure 上工作
【发布时间】:2019-06-20 17:01:07
【问题描述】:

我已经使用 Visual Studio for Mac 创建了一个连接到 .net core 中的 azure sql server 的 Web API ????。然后我在 azure 中创建了一个 Web 应用程序,然后直接在 Visual Studio for Mac 中通过项目发布到 azure。

发布后,我尝试使用 postman 和 chrome (URL/api/menu) 访问 api,但出现 500 服务器错误,这是一般性的,并没有告诉我任何信息。

在 Visual Studio for Mac 中,我得到了它所说的已发布的绿灯,并直接将我带到了新的 url。

那么,你们的问题是什么。

这是我第一次使用 azure,所以我没有更改任何设置或任何东西

【问题讨论】:

  • 在本地调试时是否有效?尝试在本地调试以检查详细错误。

标签: visual-studio asp.net-core-webapi azure-web-app-service


【解决方案1】:

由于许多不同的问题都可能导致此错误页面,因此我强烈推荐以下方法,以便快速轻松地确定根本原因,而无需使用 Azure(或任何服务器/平台)获取日志。

您可以通过在您的 Program.cs 文件中设置 .UseSetting("detailedErrors", "true").CaptureStartupErrors(true) 操作在启动时启用非常有用的错误消息。

对于 ASP.NET CORE 2.1

public class Program  
{
    public static void Main(string[] args)
    {
        BuildWebHost(args).Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .CaptureStartupErrors(true)
            .UseSetting("detailedErrors", "true")
            .UseStartup<Startup>()
            .Build();
}

在你的 startup.cs 类中添加这些命令:

app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();

同时在您的 web.config 文件中启用 stdoutLog

stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout"

Web api 中的错误代码 500 通常表示 Startup.cs 中的配置问题 - 最常见的问题包括 DB 本身的问题、迁移问题(如果您使用 Code First 方法)、appsettings 问题.js。

请参考.\logs\stdout中的日志文件。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 2021-06-03
    • 2014-06-19
    • 1970-01-01
    • 2016-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多