2013-07-21 36 views
0

我想使用实体框架将记录添加到sqlserver数据库中的webform输入数据库。 一切工作正常本地。为什么实体框架在Web服务器上给出这个错误?

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

但是,当需要将记录添加到数据库时,它会在远程服务器上发出错误,我设法跟踪到ctx.Students.Add行。

 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模板

代码生成的可能如果在代码优先模式下使用,则不能正确工作要继续使用Database First或Model First,请确保在执行应用程序的配置文件中指定了实体框架连接字符串。要使用这些类,这些类是从Database First或Model First生成的,使用Code First添加任何使用属性或DbModelBuilder API的其他配置,然后删除引发此异常的代码。

一切都应该在Web服务器上为整个网站同样被复制跨但它工作正常本地所以不知道是什么问题...

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

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

总之似乎WebMatrix中是不包括在上传的连接字符串到服务器因此没有被引用包含所有信息的类映射到数据库表中的EDMX文件造成的元数据的一部分任何对框架的查询失败。

一旦我将由Entity Framework向导生成的原始连接字符串粘贴到服务器上,一切正常。

+1

错误说的是什么? – 2013-07-21 03:23:52

+0

我认为这个问题可能是由于没有.net 4.5框架。安装后错误更改为: 'code'Error加载Razor脚本(文件:应用程序窗体)底层提供程序在打开时失败。在System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(布尔openCondition,DbConnection storeConnectionToOpen,DbConnection originalConnection,字符串exceptionCode,字符串企图操作,布尔&closeStoreConnectionOnFailure) – Riina

回答

0

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

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

看来WebMatrix中是不包括在上传的连接字符串到服务器从而包含所有的EDMX文件的元数据的一部分将类映射到数据库表的信息未被引用,导致对框架的任何查询失败。

一旦我将由Entity Framework向导生成的原始连接字符串粘贴到服务器上,一切正常。

0

根据您评论中给出的错误,听起来您连接数据库失败。检查你的连接字符串,用户名和密码。如果这些都是正确的,请确保您的数据库设置允许来自服务器IP地址的连接。

相关问题