【问题标题】:Connection String not found in Config File在配置文件中找不到连接字符串
【发布时间】:2013-11-30 07:04:19
【问题描述】:

我是 ADO.NET 的新手,我正在使用带有 WCF 的 MYSQL。

我有一个带有 ADO.NET 的 WCF 项目,SalesSolLIB 项目有 SalesSolWCF 的引用,SalesSolView 有 SalesSolLib 项目的引用。

问题是 ADO.Net 实体是在 WCF 中创建的,运行时出现错误,尽管名称存在于 web.config 文件中。

"No connection string named 'SalesSolEntities' could be found in the application config file."

网络配置文件

<connectionStrings>
    <add name="SalesSolEntities" connectionString="metadata=res://*/SalesSolDBModel.csdl|res://*/SalesSolDBModel.ssdl|res://*/SalesSolDBModel.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;server=localhost;user id=root;password=surpavan;persist security info=True;database=salessol;old guids=True&quot;" providerName="System.Data.EntityClient" />
  </connectionStrings>

WCF 文件中的代码:

 Dim DB As New SalesSolEntities()
 DB.Database.Connection.Open()   
 DB.Database.Connection.Close()
 Return "test"

SalesSolLib 中的代码:

Dim service As New SalesSolWCF.ContactService
Dim errormsg As String = service.SaveContact(wcfcontact, IsNewContact)

但是,通过浏览,我发现连接字符串必须是所有项目,但是,如果所有项目都需要连接字符串,为什么我需要使用WCF,请教如何解决这个问题,我不想要将连接字符串放在所有项目中还是我做错了?

我正在使用 Entity Framework 5.0 和 WCF 服务应用程序作为 wcf 项目类型。

【问题讨论】:

    标签: vb.net wcf ado.net connection-string


    【解决方案1】:

    您以错误的方式调用 WCF 服务。不通过简单的添加对DLL的引用来添加引用,您需要通过MEX暴露WCF端点,然后使用“添加服务引用”添加引用。

    您现在所做的是,您不是将 WCF 用作一项服务,而是将其用作一个简单的类,您可以关闭一个实例,然后调用它的方法。这不是 WCF 服务的使用方式,这就是为什么您会收到“连接字符串”丢失错误。您的类中的方法与数据库通信,因此当您在其他项目中创建该类的实例并调用该方法时,该项目还必须具有匹配的连接字符串。基本上都是错的,不应该这样。

    WCF 服务必须在您的应用程序或 IIS 中以自托管的形式托管。我建议你去学习一些基本的 WCF 教程,否则我刚刚写的内容对你没有多大意义。

    【讨论】:

    • 是的,这是一个愚蠢的错误,但我花了 3 天时间。谢谢你的回答。
    • 没问题,很高兴能帮上忙 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 2015-01-31
    • 2012-06-14
    • 2016-12-07
    相关资源
    最近更新 更多