0

설정에서 거부 CREATE DATABASE 권한MVC 3 - 서버에 게시 한 후 - '마스터'데이터베이스

MVC 3 EF 4.1 코드 첫 번째 - 윈도우 7 프로 64 데브 기계, 호스트에 대한 별도의 윈도우 7 프로.

SQLCE4.0 데이터베이스로 시작했고 모든 것이 잘 작동했습니다 (데이터베이스 초기화 프로그램이 테이블을 생성하고 채워지는 등 ...).

내가 원한 것처럼 작동하면 SqlCe DB를 스크립팅하고 실제 SQL 2008 DB를 만들고 적절한 포트를 열고 TCP 연결을 사용할 수 있도록 설정합니다.


내가 특별히이 응용 프로그램을 위해 만들어진 사용자와, 내 인트라넷 서버 \ 인스턴스 이름을 가리 키도록 내 연결 문자열을 변경하면 문제
, 완벽하게 내 dev에 컴퓨터에서 실행되는 작품. 내가 서버 (웹 서버와 SQL 서버가 동일)에 응용 프로그램을 게시하고, 내가 (일명 DB 액세스) 웹 사이트에 로그인하려고하면

, 그럼 내가 얻을 :

CREATE 데이터베이스 'master'에서 DATABASE 권한이 거부되었습니다.

DBInitializer 설정을 주석 처리 했으므로 db 히트시 아무것도 작성하지 않아야합니다. 테이블은 이미 있습니다.

Database.SetInitializer (null); 나는 다른 로그인 오류 얻을 : 내가 정확히 기억하지

을하지만 LOGIN의 영향에 대한 것이 었 내가 네트워크 서비스에 신원을 변경 IIS AppPool을 \ ApplicationPoolIdentity 그래서

실패와 심지어 LOCAL SERVICE를 시도해 보았습니다. 둘 다 동일한 로그인에 실패했습니다.

나는 'IIS APPPOOL \ MyApplicationName'이라는 SQL 사용자를 추가한다고하는 this 게시물을 시도했다. SQL은 잘못된 문자를 가지고 있기 때문에 그렇게하지 않을 것이다.

내 dev 컴퓨터에서 DB에 액세스하는 네트워크에서 완벽하게 작동하는 이유는 무엇입니까?하지만 sql과 사이트를 호스팅하는 동일한 컴퓨터에 게시 할 때 사용 권한이 거부되거나 로그인에 실패하는 오류가 발생합니까? 나는 그물을 닦고 여러 가지를 시도했다.

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

<add name="AntripContext" connectionString="Data Source=|DataDirectory|AntripWeb.sdf" providerName="System.Data.SqlServerCe.4.0" /> 
    <!--<add name="AntripSQL" connectionString="Data Source=.\sqlexpress;Initial Catalog=Antrip;User Id=myuser;Password=mypassword;" providerName="System.Data.SqlClient" />--> 
    <add name="AntripWebEntities" connectionString="metadata=res://*/DAL.AntripEntities.csdl|res://*/DAL.AntripEntities.ssdl|res://*/DAL.AntripEntities.msl;provider=System.Data.SqlServerCe.4.0;provider connection string=&quot;Data Source=|DataDirectory|\AntripWeb.sdf&quot;" providerName="System.Data.EntityClient" /> 
    <!--<add name="AntripWebEntities" connectionString="metadata=res://*/DAL.AntripEntities.csdl|res://*/DAL.AntripEntities.ssdl|res://*/DAL.AntripEntities.msl;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\sqlexpress;Initial Catalog=Antrip;User Id=myuser;Password=mypassword;&quot;" providerName="System.Data.EntityClient" />--> 

참고 : 주석 연결 문자열은 SQL 2008 데이터베이스를 사용하는 사람입니다 (즉, 내 게시 된 응용 프로그램을 깰).

답변

1

연결 문자열에 Integrated Security = true가있는 것처럼 들리므로 SQL 사용자가 아닌 사용자가 지정한 사용자로 SQL에 연결하고 있습니까?

하지만 여전히 데이터베이스를 만들려고합니다. IDatabaseInitializer를 바꿔야합니다. 조심해야하는 엔티티 이름과 동일한 DB를 찾습니다.

+0

나는 오늘 저녁 집에 갈 때 이것을 시도 할 것이다. - 고마워. – Jack

+0

내 편집 내용을 확인하고 연결 문자열을 추가했습니다. – Jack

관련 문제