【问题标题】:Connection string error using membership provider from WCF service使用 WCF 服务中的成员资格提供程序的连接字符串错误
【发布时间】:2011-11-14 13:27:56
【问题描述】:

目标是:我需要一个在数据库中创建用户的 wcf 方法。

我正在使用会员服务提供商。我的客户是智能手机/移动设备。

我编写了一个创建用户的方法,但是当我测试该方法时出现以下错误。

错误:

尝试初始化 System.Data.SqlClient.SqlConnection 对象时出错。为连接字符串提供的值可能是错误的,或者它可能包含无效的语法。 参数名称:connectionString

我在以下行中收到此错误:

Membership.CreateUser(name, password,email,"question","answer",true,out createStatus);

我正在使用与从数据库读取数据相同的 connectionString。

我的连接字符串是:

<add name="MajangoEntities" connectionString="metadata=res://*/EntityModel.MajangoEntityModel.csdl|res://*/EntityModel.MajangoEntityModel.ssdl|res://*/EntityModel.MajangoEntityModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=tcp:sql2k298.discountasp.net;initial catalog=SQL2008R2_835021_myddb;user id=SQL2008R2_835021_mydb_user;password=mypassword;multipleactiveresultsets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />

谁能帮我出点主意?

【问题讨论】:

    标签: asp.net wcf membership-provider


    【解决方案1】:

    该连接字符串包含一些实体框架特定的数据。尝试仅嵌入其中的“提供程序连接字符串”:

     <add name="MajangoEntities" connectionString="data source=tcp:sql2k298.discountasp.net;initial catalog=SQL2008R2_835021_myddb;user id=SQL2008R2_835021_mydb_user;password=mypassword;multipleactiveresultsets=True;App=EntityFramework">
    

    那里的其余数据(元数据等)只是让 SQL Server 感到困惑。

    【讨论】:

    • 您好,感谢您的回答。我按照你的建议做了。现在我得到另一个错误。错误:“在配置中找不到指定的命名连接,不打算与 EntityClient 提供程序一起使用,或者无效。”它来自 entitymodel.designer 文件。
    • 啊,好的——那么你需要两个连接字符串。尝试在现有的“MajangoEntities”字符串旁边复制这一行,但名称不同。然后,在您的 &lt;membership&gt; 部分中,确保提供者在 connectionStringName 属性中引用了这个新连接字符串的名称。
    • 这样就解决了问题。 :) 但是使用两个连接字符串是个好主意吗?如果你能描述一下为什么第一个连接字符串不够好,那将是一个很大的帮助。
    • 万岁。如您所见,EF 有自己的连接字符串格式。
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2010-12-14
    • 2011-02-06
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 1970-01-01
    相关资源
    最近更新 更多