在配置文件中找不到连接字符串

时间:2013-11-30 07:04:20

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

我是ADO.NET的新手,我正在使用MYS与WCF。

Solution Explorer

我有一个带有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."

WebConfig文件

<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项目类型。

1 个答案:

答案 0 :(得分:1)

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

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

WCF服务必须作为自托管在您的应用程序中或在IIS中托管。我建议你去参加一些基本的WCF教程,否则我刚写的内容对你来说没有多大意义。