Web API在本地可以使用,但不能在Azure上使用

时间:2019-06-18 16:33:30

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

我已经使用Visual Studio for Mac created在.net核心中创建了连接到Azure SQL服务器的Web API。然后,我用azure创建了一个Web应用程序,然后通过项目直接在Visual Studio中将其发布以供Mac使用azure。

发布后,我尝试使用邮递员和Chrome(URL / api / menu)访问api,但出现500个服务器错误,这是通用错误,什么也没告诉我。

在Mac的Visual Studio中,我得到了它所说的绿灯,并直接将我带到新的URL。

所以,你们到底是怎么回事。

这是我第一次使用azure,因此我没有更改任何设置或任何内容

1 个答案:

答案 0 :(得分:0)

由于许多不同的问题都可能导致此错误页面,因此,我强烈建议以下内容,以便快速,轻松地确定根本原因,而无需为使用Azure(或与此有关的任何服务器/平台)而费劲。

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

对于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();

还启用stdout登录到您的web.config文件中

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

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

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

希望有帮助。