C# ASP.NET을 열 수 없음 사용자 기본 데이터베이스 .LDF가 잘못되었을 수 있습니다.

StackOverflow https://stackoverflow.com/questions/476797

  •  20-08-2019
  •  | 
  •  

문제

SQL Server Express 2005 DB에 이상한 문제가 있습니다. 2003 서버에서 실행 중입니다. VS2005를 사용하면 아무런 문제없이 DB에 액세스 할 수 있습니다. 그러나 응용 프로그램을 실행하려고 할 때 다음을 얻습니다.

 Cannot open user default database. Login failed.  Login failed for user 'NT AUTHORITY\NETWORK SERVICE'......... .ldf may be incorrect.

네트워크 서비스가 웹 사이트 폴더 및 모든 IT 하위 폴더에 대한 전체 액세스 권한을 갖도록했습니다.

APP_DATA의 속성을 볼 때 읽기에만 회색 진드기가 있음을 알았습니다. .mdf 파일 만 읽지 않지만이 회색 진드기를 제거 할 수는 없습니다. 나는 그것이 사라질 때까지 그것을 클릭하고 변경을 적용하려고 시도했지만 Attrib을 시도했습니다. . -R 그러나 아무것도 바꾸지 않는 것 같습니다.

나 엄청 혼란스러워.

도움이 되었습니까?

해결책

그 차이는 폴더의 ACL과 관련이 없지만 실제로 보안 컨텍스트가 DB의 사용자에게 매핑된다는 사실. DB는 아마도 사용자 계정에 대한 매핑이있을 것입니다.

네트워크 서비스 계정이 DB를 사용하려면 DB에서 사용자를 생성하여 기계 계정에 매핑해야합니다.

다른 팁

실제로 SQL Server Express의 인스턴스를 사용하고 있습니까? 아니면 App_Data 폴더에서 데이터베이스 파일을 사용하고 있습니까?

SQL Server 인스턴스를 사용하는 경우 SQL Server Management Studio Express 설치하면 데이터베이스에 "네트워크 서비스"계정에 액세스 할 수 있도록 이와 같은 작업을 수행합니다 (이에 대한 생각을 생각하면 APP_DATA 폴더의 MDF에서 관리 스튜디오를 가리킬 수 있어야합니다.

  1. SQL Management Studio를 열고 데이터베이스에 연결하여 객체 탐색기에서 열립니다.
  2. 서버 레벨 (MachineName SQL Express)에서 "보안"섹션을 확장합니다 - 사용자의 "로그인"섹션에 아직 사용자를 확인하십시오.
  3. 그렇지 않은 경우 "로그인", "새 로그인"을 마우스 오른쪽 버튼으로 클릭하십시오.
  4. 로그인 유형이 "Windows Authentication"으로 설정되었는지 확인하십시오.
    1. "검색 ...", "고급 ..."그런 다음 "지금 찾기", 다음 대화 상자 인 "NT Service", "OK"를 두 번 클릭하십시오.
    2. "NT Authority Network Service"를 "로그인 이름 :"상자에 입력하십시오.
  5. 그런 다음 "사용자 매핑"페이지 (왼쪽 창에서 선택) 에이 사용자가 액세스하려는 데이터베이스 옆에 진드기를 넣습니다.
  6. 데이터베이스 역할이있는 경우 (예를 들어이 데이터베이스에 기본 ASP.NET 멤버십/역할/프로필 테이블이 설치된 경우) "ASPNET_MEMBERSHIP_BASICACCESS"와 같은 올바른 역할을 수행하십시오.

도움이되기를 바랍니다.

이 문제가있었습니다. APP_DATA 폴더에서 데이터베이스 파일을 사용하고있었습니다.

"데이터베이스 탐색기에서 DB가 IDE (Visual Web Developer Express) 내부에 여전히 열린 것 같습니다. 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고"Close Connection "을 선택하여 고정되었습니다."

(감사합니다 ASP.NET 포럼)

나는 당신이 영어 이외의 운영 체제를 운영하고 있다고 생각합니다.

어쨌든 어떤 이유로 든 네트워크 서비스의 로그인 이름은 OS가 다른 언어로 변환 될 때 때때로 현지화됩니다.

이제 많은 프로그램이 로그인 이름이 "NT Authority Network Service"로 하드 코딩 될 것으로 예상합니다. 예를 들어 독일 버전의 Windows에서 계정 이름은 "NT -Autorität NetzwerkDienst"입니다. 따라서 귀하의 프로그램은 영어 이름을 찾고 있으며 찾을 수 없으며 오류가 표시됩니다.

일부 Microsoft 프로그램 조차도이 함정에 들어가 설치시 이와 같은 오류가 표시됩니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top