500 内部服务器错误:无意的代码优先异常

Posted

技术标签:

【中文标题】500 内部服务器错误:无意的代码优先异常【英文标题】:500 Internal Server Error: Unintentional Code First Exception 【发布时间】:2020-12-20 01:26:49 【问题描述】:

所以这是我收到的完整错误消息。 (见标题)

See the Postman error here

我在 Azure 上托管一个 ASP.NET Web API,以及一个 Azure SQL 数据库。 我已将 .edmx 连接到 Azure 数据库,因此它可以毫无问题地向我显示托管数据库中的模型。

我非常沮丧的是我无法发送任何 API 获取请求调用!

    [EnableCors(origins: "*", headers: "*", methods: "*")]
    [System.Web.Http.Route("~/api/Admin/getTest")]
   
    [System.Web.Http.HttpGet]
    public List<CARCOLOUR> getTest()
    
        INF370KODEITEntities db = new INF370KODEITEntities();
        db.Configuration.ProxyCreationEnabled = false;

        List<CARCOLOUR> testData = db.CARCOLOURs.ToList();

        return testData;
    

这是我的连接字符串(由于明显的原因,省略了密码和用户名)

 <connectionStrings>

    <add name="INF370KODEITEntities" connectionString="metadata=res://*/Models.CarwashModel.csdl|res://*/Models.CarwashModel.ssdl|res://*/Models.CarwashModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=kodeit-apidbserver-database.database.windows.net;initial catalog=KODEIT_API_db;persist security info=True;user id='';password='';MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

此调用仅获取汽车颜色列表。但是每次我在 Postman 上调用时,都会收到令人沮丧的 500 错误。感谢this 我很幸运地找到了一个修复程序来显示更多信息。但我不确定如何修复它。

因此我的问题是,如何解决我收到的“意外代码优先”错误?

免责声明:我是一名大学生(也就是一个非常新手的程序员),因此,如果我使用了不正确的行话和/或不够具体/不够清楚,我提前道歉。

【问题讨论】:

您是否检查过连接字符串是否以元数据开头? 如果您有访问权限,服务器日志可能会告诉您为什么会获得... @insane_developer 添加了连接字符串。谢谢你提醒我!看来我的字符串确实以元数据开头 @GideonBotha 您是否尝试注释掉引发此异常的行?它将在您的 DbContext 类中。 @insane_developer 我在哪里可以找到 DbContext 类? (我好像找不到。可能找错地方了) 【参考方案1】:

找出我的问题

Azure 不喜欢我的实体框架模型是使用 Pluralize 函数创建的

我在创建数据模型时选择了这个选项:Database first approach 取消勾选“复数或单数生成的对象名称” Click for image

删除模型,取消复数后,我的 Azure Web API 终于可以接受请求并与 Azure SQL 数据库通信了

【讨论】:

以上是关于500 内部服务器错误:无意的代码优先异常的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 Spring Rest API 上的内部服务器错误(500)以自定义消息?

处理 Django Rest Framework 中的 500 个内部错误

每个异常都会发送内部服务器错误

错误代码500是啥意思

500内部服务器错误是啥意思?

Azure 功能:运行/测试模式下出现 500 个内部内部服务器错误