2013-11-30 4 views
0

Я новичок в ADO.NET, я использую MYSQL с WCF.Connection String не найден в файле конфигурации

Solution Explorer

У меня есть проект WCF с ADO.NET, проект 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) 

Однако через браузер, я обнаружил, что строка соединения должна быть всеми проектами, howeve r, почему мне нужно использовать WCF, если строка соединения необходима во всех проектах, пожалуйста, совет, как это можно решить, я не хочу ставить строку соединения во всех проектах или я делаю неправильно?

Я использую Entity Framework 5.0 и приложение службы WCF как тип проекта wcf.

ответ

1

Вы неправильно вызываете свои службы WCF. Вы не добавляете ссылку, просто добавляя ссылку на DLL, вам нужно выставить конечные точки WCF через MEX, а затем добавить ссылку, используя «Добавить ссылку на службу».

Что вы сделали сейчас, так это то, что вы используете свой WCF не как службу, а просто как простой класс, из которого вы удаляете экземпляр, а затем называете его методами. Это не то, как должны использоваться службы WCF, и поэтому вы получаете сообщение об ошибке «connection string». Метод в вашем классе ведет переговоры с базой данных, поэтому, когда вы создаете экземпляр этого класса в другом проекте и вызываете этот метод, этот проект также должен иметь соответствующую строку соединения. В принципе, все неправильно, не следует так поступать.

Услуги WCF должны размещаться либо в качестве самостоятельного размещения в вашем приложении, либо в рамках IIS. Я бы посоветовал вам пойти и взять базовый учебник WCF, иначе то, что я только что написал, не будет иметь для вас большого смысла.

+0

Да, это была глупая ошибка, но мне потребовалось 3 дня. Спасибо за ответ. – surpavan

+0

Без проблем, рад, что я мог бы помочь :) –

Смежные вопросы