사용자 인증을 사용하여 간단한 ASP.Net Core 응용 프로그램을 만들었습니다 (모든 Entity Framework가 웹 응용 프로그램 템플릿에 미리로드되어 있음). 내 appsettings.json
파일에있는 connectionString
파일을 사용하여 "data source = {computerName}\\{serverName}"
설정으로 데이터베이스에 연결하고 있습니다.ASP.NET Core - 게시 후 데이터베이스에 연결하지 않는 응용 프로그램
데이터베이스 인스턴스와 Visual Studio는 동일한 컴퓨터에 있습니다. 이것은 개발 및 디버깅 모드에서 웹 API에 데이터를 반환 할 때 잘 동작합니다. 게시 할 때 도메인 이름에서 사이트로 이동하려고하면 데이터베이스 연결이 필요하지 않은 웹 페이지를 볼 수 있지만 데이터베이스의 데이터는 다음과 같은 페이지를 반환합니다.
오류 .
요청을 처리하는 동안 오류가 발생했습니다. 개발 모드 개발 환경으로 스와핑하면 발생한 오류에 대한 자세한 정보가 표시됩니다.최종 사용자에게 의 중요한 정보가 표시 될 수 있으므로 배포 된 응용 프로그램에서는 개발 환경을 사용해서는 안됩니다. 로컬 디버깅의 경우 ASPNETCORE_ENVIRONMENT 환경 변수를 Development로 설정하고 응용 프로그램을 다시 시작하여 개발 환경을 사용할 수 있습니다.
ASPNETCORE_ENVIRONMENT
의 환경 변수를 개발에서 생산으로 변경하려고 시도했지만 성공하지 못했습니다.
나는 어떤 파일 appsettings.Production.json
이 없다하더라도, 내 project.json
파일에 publishOptions
-appsettings.Production.json
를 추가하는 시도,이 도움이되지 않았다. dotnet publish
web.config
파일의 evironment 변수가 내가 개발 Visual Studio를 설치 외부에서 내 SQL 서버 데이터베이스에 연결하기 위해 게시 된 웹 API를하는 데 도움이 필요 Deployment
를 작동하지 않았다 추가.
제가 생각할 수있는 마지막 것은 연결 문자열을 이해하는 방법이 올바르지 않을 수 있습니다. 웹 API가 연결 문자열을 사용하여 서버 쪽에서 데이터베이스에 연결하는 경우 동일한 컴퓨터에 있기 때문에 개발 중에 http://localhost:port#
으로 전화를 걸 때처럼 잘 작동합니다. 그러나 데이터베이스 문자열이 클라이언트 측 호출을 기반으로해야하는 경우 도메인 이름과 IP 주소가 있어야합니다. 누군가 그게 어떤 것인지 알려 줄 수 있습니까?
유일한 다른 생각은 IIS 관리자 내부에서 수행하지 않고 수행해야 할 작업이 있다는 것입니다. 거기에 연결 문자열도 있지만 연결 문자열은 응용 프로그램 내부에 있기 때문에 그것이 무엇인지 확신 할 수 없습니다. 또한 어쩌면 나는 그들이 동일한 기계에 있더라도 응용 프로그램 데이터베이스 서버와 통신 할 수있는 일종의 권한을 부여한다고 가정합니까 ???
솔루션을 공유해 주셔서 감사합니다. 그것은 나를 도왔다. 내가해야 할 일은 BUILTIN \ IIS_IUSRS를 Db 로그인에 읽기/쓰기 권한으로 추가하는 것이 었습니다. – nam