복붙노트

[SQL] EF 4.1 예외 "공급자는 ProviderManifestToken 문자열을 반환하지 않았습니다"

SQL

EF 4.1 예외 "공급자는 ProviderManifestToken 문자열을 반환하지 않았습니다"

나는 MSDN에서 발견 예를 복제하는 것을 시도하고있다. 나는 ASP.NET 및 EF 4.1 사용하고 있습니다 (CTP를?). 나는 EntityFramework 패키지를 설치 NuGet을 사용했습니다.

이 오류가 무엇입니까 : 공급자는 ProviderManifestToken 문자열을 반환하지 않았습니다 ... 데이터베이스가 만들어지지 않습니다.

여기 내 연결 문자열은 다음과 같습니다

<add name="HospitalContext"
   connectionString=
   "data source=.\SQLExpress;initial catalog=NewTestDB;integrated security=True;"
   providerName="System.Data.SqlClient"/>

여기 내 코드는 다음과 같습니다

var pat = new Patient { Name = "Shane123132524356436435234" };
db.Patients.Add(pat);

var labResult = new LabResult { Result = "bad", Patient = pat };

int recordAffected = db.SaveChanges();

여기 내 상황은 다음과 같습니다

public class HospitalContext : DbContext
{
    static HospitalContext()
    {
        Database.SetInitializer(new HostpitalContextInitializer());
    }

    public DbSet<Patient> Patients { get; set; }
    public DbSet<LabResult> LabResults { get; set; }
}

public class HostpitalContextInitializer :
             DropCreateDatabaseIfModelChanges<HospitalContext>
{
    protected override void Seed(HospitalContext context)
    {
        context.Patients.Add(new Patient { Name = "Fred Peters" });
        context.Patients.Add(new Patient { Name = "John Smith" });
        context.Patients.Add(new Patient { Name = "Karen Fredricks" });
    }
}

이것은 VS 2010 SP1과 함께 완벽하게 패치 된 SQL 2008 시스템입니다.

해결법

  1. ==============================

    1.이 오류를 받고 이전 제안의 몇 가지 시도했다. 그럼 내부 예외를 확인하고 내가 사용자에 대한 간단한 SQL 로그인 실패를 점점 알게되었다. 다른 뭔가를 확인합니다.

    이 오류를 받고 이전 제안의 몇 가지 시도했다. 그럼 내부 예외를 확인하고 내가 사용자에 대한 간단한 SQL 로그인 실패를 점점 알게되었다. 다른 뭔가를 확인합니다.

  2. ==============================

    2.당신은 Visual Studio에서 잘못된 프로젝트의 app.config에서 연결 문자열을 배치 할 때이 가끔 발생할 수 있습니다.

    당신은 Visual Studio에서 잘못된 프로젝트의 app.config에서 연결 문자열을 배치 할 때이 가끔 발생할 수 있습니다.

    예를 들어, 내가 EF 4.1 (릴리스 버전) 프로젝트 + WCF 데이터 서비스 프로젝트에서이 문제를했고 나는 그것을 사용 된 데이터 서비스 프로젝트에 지정된 연결 문자열을 가지고 있지 않은 것으로 나타났습니다.

  3. ==============================

    3.나는 같은 오류를 가지고되었고, 실제로는 로그인 지정된 서버에 실패했습니다. 내가 설정 연결 문자열에서 "통합 보안"속성을 제거하고 일했다.

    나는 같은 오류를 가지고되었고, 실제로는 로그인 지정된 서버에 실패했습니다. 내가 설정 연결 문자열에서 "통합 보안"속성을 제거하고 일했다.

  4. ==============================

    4.저도 같은 문제가 있었는데, 난 그냥 내 컨텍스트의 인스턴스 후 코드 아래 추가 (exemple에 의해 온로드)

    저도 같은 문제가 있었는데, 난 그냥 내 컨텍스트의 인스턴스 후 코드 아래 추가 (exemple에 의해 온로드)

    context.Database.Connection.ConnectionString = @"Data Source=.\SQLExpress;Initial Catalog=Test;Integrated Security=True";
    
  5. ==============================

    5.나는 MvcMusicStore 앱 유사한 문제가 있었다. 나는에서의 Web.config의 라인을 변경 "인스턴스 = 거짓"을 "인스턴스 진정한 =". 때때로이 팅겨없이 작동하지만 그 차이의 원인을 알 수 없습니다. 읽기이 http://msdn.microsoft.com/en-us/library/ms254504.aspx 정말 도움이되지 않았다.

    나는 MvcMusicStore 앱 유사한 문제가 있었다. 나는에서의 Web.config의 라인을 변경 "인스턴스 = 거짓"을 "인스턴스 진정한 =". 때때로이 팅겨없이 작동하지만 그 차이의 원인을 알 수 없습니다. 읽기이 http://msdn.microsoft.com/en-us/library/ms254504.aspx 정말 도움이되지 않았다.

  6. ==============================

    6.권한 일부 특정 이유에 의해, EF는 데이터베이스 연결을 만들 수 없습니다. 나는 모두 한 날이 같은 문제에 직면했다. 마지막으로 나는 해결책 다음 시도했다 그리고 일 : A / 열기 IIS (내가 사용은 7.0) (:을 DefaultAppPool 예)를 B / 열기는 웹 사이트가 사용 된 appool의 고급 설정 프로세스 모델 그룹에서 C / 봐, "로컬 시스템"로 변경 ID 값

    권한 일부 특정 이유에 의해, EF는 데이터베이스 연결을 만들 수 없습니다. 나는 모두 한 날이 같은 문제에 직면했다. 마지막으로 나는 해결책 다음 시도했다 그리고 일 : A / 열기 IIS (내가 사용은 7.0) (:을 DefaultAppPool 예)를 B / 열기는 웹 사이트가 사용 된 appool의 고급 설정 프로세스 모델 그룹에서 C / 봐, "로컬 시스템"로 변경 ID 값

    그것은 당신과 함께 일 바랍니다.

  7. ==============================

    7.난 그냥 같은 문제가되었다 ... 나를 위해 일한 솔루션했다 : 클라이언트 네트워크 구성 도구를 실행 (실행에 cliconfg를 입력) 있는지 TCP / IP가 활성화되어 있는지 확인합니다 ..

    난 그냥 같은 문제가되었다 ... 나를 위해 일한 솔루션했다 : 클라이언트 네트워크 구성 도구를 실행 (실행에 cliconfg를 입력) 있는지 TCP / IP가 활성화되어 있는지 확인합니다 ..

  8. ==============================

    8.나는 마침내 금 - 약간의 야생 거위 체이스 사고 후 권한 때문.

    나는 마침내 금 - 약간의 야생 거위 체이스 사고 후 권한 때문.

    요한 계시록 : 사용 SQL 프로파일 러

    (참고 : 나는 최근 EF5에 EF6에서 다운 그레이드)

    사용 SQL 프로파일 러 나는 빨리보고 된 오류가 발생하기 전에 마지막으로 실행 된 SQL을 발견 :

    SELECT TOP (1) 
    [Project1].[C1] AS [C1], 
    [Project1].[MigrationId] AS [MigrationId], 
    [Project1].[Model] AS [Model]
    FROM ( SELECT 
        [Extent1].[MigrationId] AS [MigrationId], 
        [Extent1].[Model] AS [Model], 
        1 AS [C1]
        FROM [dbo].[__MigrationHistory] AS [Extent1]
    )  AS [Project1]
    ORDER BY [Project1].[MigrationId] DESC
    

    마이그레이션 함께 할 수있는 뭔가 - 그럼 그 봐. __MigrationHistory 테이블에 찾고 - 나는 심지어 만들었다 실현하지 않았다 (나는 이미 내 CSPROJ에서 마이그레이션을 전멸했다) 그 제한을 해제한다.

    그래서 나는 그 테이블에 대한 행을 잡아 당기은 특정 제품 버전 (V6)에 연결되는 것을 알 수있다.

    사실과 문제가 시작된 때 (더 비계와 호환) EF5에 EF6 (내가 처음에 설치하지 않았다)에서 다운 그레이드.

    내 생각 엔 모델 (<바이너리 데이터>) 열이 호환되지 않는 것입니다 - 따라서 그것을 해독 할 수 없습니다 이후 ProviderManifest 인스턴스 오류를 반환하지 않은 공급자.

    나는 잃을 게 아무것도하지 않았고 단지는 완전히이 테이블을 전멸 및 업데이트 - 데이터베이스 -Verbose를 실행 한 후 다시 실행했다.

    당신이 고급 환경에서 이미 생산에있을 경우,이 테이블을 닦는 것은 해결책이 될 수 있지만,이 방법은 저 일에 바로 다시 얻을 수 없습니다 수 있습니다.

  9. ==============================

    9.EF4.1 및 ASP.NET MVC와 비주얼 스튜디오 11 베타를 사용하여, 나는 거의 내가 찾아 낼 때까지 밖으로 내 머리를 당겨

    EF4.1 및 ASP.NET MVC와 비주얼 스튜디오 11 베타를 사용하여, 나는 거의 내가 찾아 낼 때까지 밖으로 내 머리를 당겨

    내 문제를 해결하기 위해, 나는 위해 Application_Start에 가서 변경

  10. ==============================

    10.는 CodePlex에서이 인용이 나와 함께 일한 (비주얼 스튜디오 2013 / MVC 5)

    는 CodePlex에서이 인용이 나와 함께 일한 (비주얼 스튜디오 2013 / MVC 5)

  11. ==============================

    11.당신이 EF 코드 첫 번째를 사용하는 경우 고려해야 할 또 다른 점은 때때로 자동으로 DbContext 클래스에 백업 데이터베이스를 작성하지 않습니다. 이 솔루션은 자신의 연결 문자열을 추가하는 것입니다 - 당신은 사용자 / 등록 데이터베이스를 처리하기 위해 존재할 수있는 연결 문자열을 사용할 수있는 백업 템플릿으로 단순 멤버 자격 공급자. 마지막으로, 당신은 당신이 만든 DbContext 클래스의 기본 생성자를 추가해야합니다 :

    당신이 EF 코드 첫 번째를 사용하는 경우 고려해야 할 또 다른 점은 때때로 자동으로 DbContext 클래스에 백업 데이터베이스를 작성하지 않습니다. 이 솔루션은 자신의 연결 문자열을 추가하는 것입니다 - 당신은 사용자 / 등록 데이터베이스를 처리하기 위해 존재할 수있는 연결 문자열을 사용할 수있는 백업 템플릿으로 단순 멤버 자격 공급자. 마지막으로, 당신은 당신이 만든 DbContext 클래스의 기본 생성자를 추가해야합니다 :

    public ChaletDb():base("ChaletConnection")
        {
    
        }
    

    여기, 당신이 당신의 web.config 파일에 입력 된 연결 문자열의 이름은 데이터베이스를 만들 DbContext을 지시하는 데 사용됩니다. 아주 가끔, 내가 수동으로 작업에 메시지 (SQL Server 관리 Studio에서) 데이터베이스를 작성 했어.

  12. ==============================

    12.나는 해결책으로 여러 프로젝트를 가지고 다른 시간에 각 프로젝트에 EF를 추가했다. 일부 컴퓨터가 작동했고 일부에는 상기 오류로 실패했습니다. 내 프로젝트의 app.config의 일부는이 있다고는 통지 나에게 동안을했다 :

    나는 해결책으로 여러 프로젝트를 가지고 다른 시간에 각 프로젝트에 EF를 추가했다. 일부 컴퓨터가 작동했고 일부에는 상기 오류로 실패했습니다. 내 프로젝트의 app.config의 일부는이 있다고는 통지 나에게 동안을했다 :

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

    당신이 LocalDb를 사용하는 경우 해당 특정 서버가 설치되어 있고 일반 SQL을 사용하지 않는 경우가 있지만, (같은 새로운 "표현 SQL") 완전히 잘못 괜찮습니다.

    해결 방법 : 위의 코드를 제거합니다.

  13. ==============================

    13.SQL 서버로의 연결에 실패하기 때문이다.

    SQL 서버로의 연결에 실패하기 때문이다.

    밑에있는이 과정은 SQL 서버에 대한 액세스 권한이 실행 중인지 확인 사용자 계정을 확인합니다.

    당신이 (의존성 주입을 사용하여 같은) 부모 스레드에서 DbContext를 생성 한 경우 다른 사용자를 사칭하는 경우 다음이 오류가 발생합니다. 이 솔루션은 새로운 스레드 또는 새로운 가장을 컨텍스트 내에서 DbContext를 생성하는 것입니다.

  14. ==============================

    14.난 그냥 비주얼 스튜디오의 모든 인스턴스를 닫고 내 솔루션을 재개.

    난 그냥 비주얼 스튜디오의 모든 인스턴스를 닫고 내 솔루션을 재개.

    정말 무슨 일이 있었는지 모르겠지만, 나는 같은 솔루션은 두 개의 서로 다른 지역의 작업 공간 (내 로컬 변경, 변경되지 않은 저장소 소스 코드를 하나 하나)에서 오픈했다. 포스트 그레스와 I 작업 DB, 엔티티 프레임 워크 (6), 비주얼 스튜디오 2013 및 ASP.NET MVC 5.

  15. ==============================

    15.내가 엔티티 프레임 워크에 대한 오류 있었지만 위의 답변 중 어느 것도 마지막 일을 용액에 맞는 결국하지 않습니다.

    내가 엔티티 프레임 워크에 대한 오류 있었지만 위의 답변 중 어느 것도 마지막 일을 용액에 맞는 결국하지 않습니다.

    내 EntityFramework 코드 첫 번째 모델 및 DataContext를 내 WebAPI 주 프로젝트에서 별도의 프로젝트에 있었다. 시작 프로젝트로 설정 코딩 내가 마이그레이션 내가지고 있다고 실행되었을 때, 따라서 ... 연결 문제 "공급자가 ProviderManifestToken 문자열을 반환하지 않았습니다"의 라인 아래로 내 엔티티 프레임 워크 프로젝트 곳.

    DB를에 ConnectionString을가 WebAPI 주요 프로젝트의 Web.config 파일에 위치하기 때문에 내가 마이그레이션을 실행할 때 턴 아웃, 연결 문자열이 검색되지 않는 것을있다. 내 startProject 나는 성공적으로 연결할 수 있다는 WebAPI 프로젝트를 설정하면.

  16. from https://stackoverflow.com/questions/5423278/ef-4-1-exception-the-provider-did-not-return-a-providermanifesttoken-string by cc-by-sa and MIT license