为什么实体框架在web服务器上出现此错误

本文关键字:错误 服务器 实体 框架 web 为什么 | 更新日期: 2023-09-27 18:24:00

我正在尝试使用实体框架将记录从web表单输入添加到数据库中,这些记录将进入sqlserver上的数据库。当地一切都很好。

我使用webmatrix将我的网站发布到我的远程服务器上,该网站和我的本地数据库版本在远程服务器上成功地重新创建了所有数据。

然而,当需要将记录添加到数据库时,它会在远程服务器上显示一个错误,我设法将其跟踪到ctx。学生们。添加行。

        using (var ctx = new HDPS_SchoolDataEntities())
        {
            SchoolDataModel.Student temp = new SchoolDataModel.Student();
            temp.Name = this.FirstName;
            temp.Surname = this.Surname;
            temp.Parents = this.Parents;
            ctx.Students.Add(temp);
            ctx.SaveChanges();
        }

我找不到我的本地版本和远程服务器上不工作的版本之间的任何区别。web.config似乎按预期配置,所有必要的dll都在我的bin文件夹中,但它在远程服务器上不起作用。。。有什么想法吗?

哎呀,忘记了错误消息!

编辑

在安装.net 4.5并将连接模式从windows身份验证更改为SQL身份验证后,错误现在变为:

如果在"代码优先"模式下使用,则使用T4模板为"数据库优先"answers"模型优先"开发生成的代码可能无法正常工作。若要继续使用数据库优先或模型优先,请确保在执行应用程序的配置文件中指定实体框架连接字符串。若要使用这些从"数据库优先"或"模型优先"生成的类,请使用"代码优先"添加使用属性或DbModelBuilder API的任何其他配置,然后删除引发此异常的代码。

当整个网站被复制时,网络服务器上的一切都应该是一样的,但它在本地运行良好,所以不确定问题是什么…

好的,我在这个网页的帮助下解决了这个问题

http://blog.oneunicorn.com/2012/02/26/dont-use-code-first-by-mistake/

简而言之,webmatrix似乎不包括上传到服务器的连接字符串的元数据部分,因此包含将类映射到数据库表的所有信息的EDMX文件没有被引用,导致对框架的任何查询都失败。

一旦我将实体框架向导生成的原始连接字符串粘贴到服务器上,一切都很好。

为什么实体框架在web服务器上出现此错误

根据注释中给出的错误,听起来您无法连接到数据库。请检查您的连接字符串、用户名和密码。如果这些都是正确的,请确保您的数据库设置允许从您的服务器ip地址进行连接。

OK我可以在这个网页的帮助下解决这个问题吗

http://blog.oneunicorn.com/2012/02/26/dont-use-code-first-by-mistake/

webmatrix似乎不包括上传到服务器的连接字符串的元数据部分,因此包含将类映射到数据库表的所有信息的EDMX文件没有被引用,导致对框架的任何查询都失败。

一旦我将实体框架向导生成的原始连接字符串粘贴到服务器上,一切都很好。