不支持关键字用户ID

时间:2016-12-06 20:50:59

标签: c# entity-framework windows-services

我们有一个基于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 parse异常:ArgumentException:不支持关键字:'user id'。   12/02 15:12:39.224 at System.Data.EntityClient.DbConnectionOptions.ParseInternal(Hashtable parsetable,String connectionString,Hashtable synonyms definitions)      at System.Data.EntityClient.DbConnectionOptions..ctor(String connectionString,Hashtable synonyms definitions)      在System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)      在System.Data.Objects.ObjectContext..ctor(String connectionString,String defaultContainerName)..代码参考

更新:添加了一个引起问题的额外引号,注意到我将引号更改为“。”谢谢大家的帮助。

1 个答案:

答案 0 :(得分: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;""