2013-07-21 37 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地址的連接。

相關問題