Не удается подключиться к 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=&quot;server=localhost;user id=root;database=people&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>

Кстати, имена "PeopleEntities" и "ApplicationServices" используются в качестве псевдонимов на AppHarbor. И я понятия не имею, как использовать код, приведенный в документации, базы данных-это просто не мое дело.. как использовать как локальные, так и удаленные строки conn? Где в коде я могу построить строку и ввести ее? Нужно ли это делать всякий раз, когда я создаю экземпляр DBContext? И т.д..

Любые идеи будут великолепны, спасибо!

Редактировать: Кстати, если я жестко закодирую строки подключения, в приложении.сконфигурируйте и используйте wcftestclient, он работает, он запрашивает базу данных.. но это не очень хорошая идея, очевидно, строки соединения могут меняться без предупреждения.

В любом случае, если я разверну его с жестко закодированными строками и подключусь к базе данных с моего сайта.. он не запрашивает SQL-сервер.. действительно запутался : (

1 2

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>

И вы должны быть хороши, чтобы идти..