2013-12-23 2 views
2

아마도 간단한 질문이지만 내 상황에 대한 대답을 찾기가 어렵다는 것을 증명할 수 있습니다.연결 문자열에 대한 적절한 공급자 형식

은 MVC 4, 비주얼 스튜디오를 사용하여 C# 응용 프로그램은

2012 나는이 tutorial을 따라 로컬 데이터베이스의 연결 문자열 온라인 (따라 1and1 서버) 호스팅 MS SQL 데이터베이스 (일을) 전환하는 것을 시도하고 표현한다.

온라인 공급자가 제공하는 접속 정보는 다음과 같습니다

Provider=sqloledb;Data Source=db501044113.db.1and1.com,1433;Initial Catalog=db501044113;User Id=dbo501044113;Password=*****; 

내 연결 문자열이 있습니다 :

<add name="RCDBContext" 
    connectionString="Data Source=db501044113.db.1and1.com,1433;Initial Catalog=db501044113;User Id=dbo501044113;Password=*****" 
    providerName="System.Data.SqlClient" 
/> 

내 페이지를로드 할 때 내가 권한 거부 오류를 만났다 해요 : CREATE DATABASE permission denied in database 'master'.

왜 기존 데이터베이스를 만들려고합니까?

내가 찾는 대부분의 Google 응답은 서버 쪽 사용 권한에 대한 것입니다. 제 데이터베이스는 제 3 자에 의해 호스팅되기 때문에 이러한 권한에 대한 액세스 권한이 없습니다. 이 서비스가 제공되는 공통 서비스이므로 필요하지는 않습니다.

정말 서버 측 권한을 변경해야합니까, 아니면 실수로 응용 프로그램입니까?

아마도 Entity Framework 및 코드와 관련이 있습니까?

연결 문자열에 Provider=sqloledb을 사용했지만 다른 오류가 발생했습니다. 이 유형의 제공자에게 providerName="System.Data.SqlClient" 이외의 것을 사용해야합니까?

답변

0

내 솔루션 초기화의 약간 다른 유형 었죠.

  • CreateDatabaseIfNotExists
  • DropCreateDatabaseAlways 난 그냥 같이 null로 설정

  • DropCreateDatabaseIfModelChanges : 대신 세 가지 옵션 중 하나를 설정하는 사람들을 위해

    Database.SetInitializer<RCDBContext>(null); 
    

    도를 누가 이 코드를 어디에 넣을 지 궁금해하고 파일 Application_Start() 안에 Global.asax 파일. 주석에 대한

    protected void Application_Start() 
        { 
         AreaRegistration.RegisterAllAreas(); 
    
         WebApiConfig.Register(GlobalConfiguration.Configuration); 
         FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
         RouteConfig.RegisterRoutes(RouteTable.Routes); 
         BundleConfig.RegisterBundles(BundleTable.Bundles); 
         AuthConfig.RegisterAuth(); 
    
         Database.SetInitializer<RCDBContext>(null); 
        } 
    
  • 1

    문제는 Connectionstring이 아니라 데이터베이스를 다시 생성하려고 시도하는 코드입니다.

    Entity Framework 4 Code First - Prevent DB Drop/Create

    System.Data.Entity.Database.SetInitializer(new CreateDatabaseIfNotExists<SampleContext>()); 
    
    +0

    감사 :

    예를 들어,이 광산의 모습입니다.이것에 대해 조금 읽었고 코드가'Application_Start()'에 있어야하는 것처럼 보입니다. 여전히 동일한 오류가 발생하기 때문에 문제가 될 수도있는 새로운 파일을 만들려고 시도합니다. 다른 제안? –

    관련 문제