2013-03-15 6 views
2
<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 

Возможно, это относится к теме? Я просто его там, чтобы не винить вещи дальше. Но ниже, что я заинтересован в, это строка подключения моего локального сервера SQLНевозможно подключиться к SQL-серверу AppHarbor

<connectionStrings> 
    <add name="ApplicationServices" connectionString="Data Source=localhost;Initial Catalog=TestDB;User ID=lews;Password='therin'" providerName="System.Data.SqlClient" /> 

«При создании базы данных по Sequelizer вы можете указать строку соединения псевдоним. Это делается на Дополнительную страницу Sequelizer (см. Ссылку «Перейти к ...» в обзоре приложения). Если вы укажете это имя как имя вашей строки подключения в файле конфигурации, мы автоматически заменим его на строку подключения Sequelizer когда ваш код развернут ».

Это фрагмент из документации Appharbor. Поэтому я предполагаю, что источник данных, начальный каталог, идентификатор пользователя и пароль автоматически заменяются правильными значениями 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> 

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

Любые идеи будут замечательными, спасибо!

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

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

ответ

0

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> 

о убедитесь, что узлы разъема MySQL являются локальными и он должен быть в файле web.config, а также, дополнительно убедиться в место его в App.config вашего WCF используют тот же псевдоним аддона в вашей строке соединения.

Для аддона SQL Server: Вам нужно эта разметка в web.config:

<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> 

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

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