无法连接到SQL Server AppHarbor

问题描述:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="v11.0" /> 
     </parameters> 
    </defaultConnectionFactory> 
    </entityFramework> 

是否与上述相关?我只是把它放在那里,以免把事情搞得更深。 但低于是我很感兴趣,这是我的本地SQL Server的连接字符串无法连接到SQL Server 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文档的片段。所以我假设数据源,初始目录,用户ID和密码被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别名。 而我不知道如何使用文档中给出的代码,数据库只是不是我的东西..我如何使用本地和远程连接字符串?在代码中,我在哪里构建字符串并注入它?当我创建一个DBContext实例时,我必须这样做吗?等..

任何想法将是伟大的,谢谢!

编辑: 顺便说一句,如果我硬编码的连接字符串,在App.config并使用wcftestclient,它的工作原理,它查询数据库..但是,这不是一个好主意,显然连接字符串可以更改而不会有警告

无论如何,如果我硬编码与琴弦部署,并连接到我的网站数据库..它不会查询SQL服务器..真的很困惑:(

http://support.appharbor.com/discussions/problems/2687-solved-mysql-provider-with-entity-framework-problem 对于实体框架: 这件作品标记的是令人难以置信的重要:。

<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文件为好,要格外肯定把它放在WCF的使用的App.config连接字符串中的相同插件别名

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

,你应该是好去..