我们有一个基于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)..代码参考
更新:添加了一个引起问题的额外引号,注意到我将引号更改为“。”谢谢大家的帮助。
答案 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;""