Blazor CRUD 샘플 : IIS 서버 요청에 대한 HTTP 오류 500

asp.net-core blazor c# iis

문제

Blazor CRUD 예제를 로컬 서버에 게시했습니다. 웹 사이트는 정상적으로 작동하지만 데이터 가져 오기 페이지로 이동할 때 HTTP 오류 500이 표시됩니다. Visual Studio에서 실행하지만 IIS 서버에서는 모든 것이 잘 작동합니다. 컨텍스트 파일에 연결 문자열이 있습니다. 또한 응용 프로그램 풀 설정 페이지에서 연결 문자열을 편집했지만 여전히 작동하지 않습니다.

이것은 컨텍스트 파일에서 사용하는 코드입니다.

        optionsBuilder.UseSqlServer(@"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=master;Trusted_Connection=True;");

또한이 연결 문자열을 IIS에 사용합니다. 여기에 이미지 설명을 입력하십시오.

수락 된 답변

대답은 여기에 두 개의 다른 LocalDB 인스턴스가 있다는 것입니다. Windows 서비스로 실행되는 SQL Server Express 인스턴스와 달리 LocalDB 인스턴스는 사용자 프로세스로 실행됩니다. 다른 Windows 사용자가 LocalDB에 연결하면 각 사용자에 대해 시작된 다른 LocalDB 프로세스가 종료됩니다. Visual Studio에서 (localdb) \ v11.0에 연결하면 LocalDB 인스턴스가 시작되어 Windows 계정으로 실행됩니다. 그러나 IIS에서 ApplicationPoolIdentity로 실행중인 웹 응용 프로그램이 LocalDB에 연결되면 다른 LocalDB 인스턴스가 시작되어 ApplicationPoolIdentity로 실행됩니다! 실제로 Visual Studio와 Web Application이 동일한 LocalDB 연결 문자열을 사용하더라도 서로 다른 LocalDB 인스턴스에 연결하고 있습니다. 분명히 LocalDB 인스턴스의 Visual Studio에서 생성 된 데이터베이스는 Web Application의 LocalDB 인스턴스에서 사용할 수 없습니다.

쉬운 수정 프로그램은 LocalDB 대신 SQL Server Express를 사용합니다.

세부 정보 - https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-2-instance-ownership/




아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.