2016-12-06 57 views
0

我們有一個基於windows服務的應用程序,它使用實體框架連接到數據庫。並且我們使用下面的連接字符串進行訪問,工作正常。突然間,它拋出異常「關鍵字用戶ID不支持」。我已經嘗試過通過添加providerName,刪除提供者等各種選項,但仍然沒有運氣。任何關於此的指導都會非常有幫助。不支持關鍵字用戶標識

連接字符串:

"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string=\"Data Source=datasource;Initial Catalog=dbname;MultipleActiveResultSets=True;User ID=userid;Password=password;\" 

注意:如果我試圖從我的本地機器和測試連接,連接似乎不拋出異常。

堆棧跟蹤:

12/02 15:12:38.631 SubMessageType解析異常:ArgumentException的:關鍵字不支持: '用戶ID'。 12/02 15:12:39.224在System.Data.EntityClient.DbConnectionOptions.ParseInternal(Hashtable parsetable,String connectionString,Hashtable同義詞) at System.Data.EntityClient.DbConnectionOptions..ctor(String connectionString,Hashtable synonyms同義詞) at System.Data.EntityClient.EntityConnection.ChangeConnectionString(字符串newConnectionString) 在System.Data.Objects.ObjectContext..ctor(字符串的connectionString,字符串defaultContainerName)..代碼參考

更新:有一個額外的報價是被添加,這是造成這個問題,注意到當我改變報價到"。謝謝大家的幫助。

+0

你[編輯],可以包括完整的堆棧跟蹤? – DavidG

+0

@DavidG它應該是一個鏈接,如「讓我開始編輯你的問題給你」; P –

+0

@MatíasFidemraizer不幸的是,這正是''''''''自動鏈接給我們帶來的! – DavidG

回答

0

我認爲這個問題可能是通過連接字符串中途溢出的雙引號。

改變那些",它應該工作:

"metadata=res://*/Model1.csdl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClient;provider connection string="Data Source=datasource;Initial Catalog=dbname;MultipleActiveResultSets=True;User ID=userid;Password=password;"" 
+0

不支持關鍵字:'數據源'是我得到的異常。 –

+0

嗨,謝謝你這樣做,但不得不在連接之前解碼字符串 –