Не удается подключиться к SQL server AppHarbor
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
</entityFramework>
Имеет ли это отношение к делу? Я просто держу его там, чтобы не испортить все еще больше. Но ниже то, что меня интересует, это строка подключения моего локального sql server
<connectionStrings>
<add name="ApplicationServices" connectionString="Data Source=localhost;Initial Catalog=TestDB;User ID=lews;Password='therin'" providerName="System.Data.SqlClient" />
"при создании базы данных в Sequelizer можно указать псевдоним строки подключения. Это делается на странице дополнения Sequelizer (выполните команду " перейти ..."ссылка на обзор приложения). Если вы зададите это имя в качестве имени строки подключения в файле конфигурации, мы будем автоматически заменить его с вашим Sequelizer строку подключения при развертывании вашего кода."
Это фрагмент из документации Аппхарбора. Поэтому я предполагаю, что источник данных, исходный каталог, идентификатор пользователя и пароль автоматически заменяются правильными значениями AppHarbor. Но он не может соединиться по какой-то причине.Ниже приведена другая строка, которую я использую с MySQL на этот раз, опять же я предполагаю, что AppHarbor должен автоматически вводить правильные значения, но ошибка, которую он дает это:
" PeopleEntities не могут быть найдены в файле конфигурации приложения" Что происходит?
<add name="PeopleEntities" connectionString="metadata=res://*/Context.People.csdl|res://*/Context.People.ssdl|res://*/Context.People.msl;provider=MySql.Data.MySqlClient;provider connection string="server=localhost;user id=root;database=people"" providerName="System.Data.EntityClient" />
</connectionStrings>
Кстати, имена "PeopleEntities" и "ApplicationServices" используются в качестве псевдонимов на AppHarbor. И я понятия не имею, как использовать код, приведенный в документации, базы данных-это просто не мое дело.. как использовать как локальные, так и удаленные строки conn? Где в коде я могу построить строку и ввести ее? Нужно ли это делать всякий раз, когда я создаю экземпляр DBContext? И т.д..
Любые идеи будут великолепны, спасибо!
Редактировать: Кстати, если я жестко закодирую строки подключения, в приложении.сконфигурируйте и используйте wcftestclient, он работает, он запрашивает базу данных.. но это не очень хорошая идея, очевидно, строки соединения могут меняться без предупреждения.
В любом случае, если я разверну его с жестко закодированными строками и подключусь к базе данных с моего сайта.. он не запрашивает SQL-сервер.. действительно запутался : (
1 ответ:
Http://support.appharbor.com/discussions/problems/2687-solved-mysql-provider-with-entity-framework-problem Для Entity Framework: Этот кусок разметки невероятно важен:
<system.data> <DbProviderFactories> <clear /> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.4.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> </DbProviderFactories> </system.data>
Oh убедитесь, что сборки соединителей MySQL являются локальными. И это должно быть в вашей паутине.конфигурационный файл также, чтобы быть более уверенным, поместите его в приложение вашего WCF.конфиг. Используйте тот же псевдоним аддона в строке подключения.
Для дополнения SQL Server: Вам нужна эта разметка в сеть.конфигурация:
<system.web> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5"/> <membership> <providers> <clear /> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> </providers> </membership> <profile> <providers> <clear /> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> </providers> </profile> <roleManager enabled="true"> <providers> <clear /> <add connectionStringName="ApplicationServices" applicationName="/" name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" /> <add applicationName="/" name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" /> </providers> </roleManager> </system.web>
И вы должны быть хороши, чтобы идти..