IIS의 Azure VM에서 Silverlight 웹 응용 프로그램을 호스팅하고 있습니다. 웹 응용 프로그램과 상호 작용하는 다른 응용 프로그램과 함께 SQL Server를 호스팅하는 다른 VM이 있습니다. Azure 가상 네트워크를 사용하여이 두 VM 사이에 LAN을 설정했습니다. IIS를 실행하고 웹 응용 프로그램을 호스팅하는 VM은 내 도메인 컨트롤러이기도하며 Windows 인증을 사용하여이 웹 응용 프로그램의 사용자를 인증합니다. 응용 프로그램은 엔티티 프레임 워크를 사용하여 일부 저장 프로 시저를 실행합니다.엔티티 프레임 워크의 원격 저장 프로 시저를 호출 할 때 서버가 응답하지 않습니다.
웹 응용 프로그램에 로컬 및 원격으로 액세스 할 때 전반적인 모든 것이 정상적으로 작동하지만이 웹 응용 프로그램을 통해 원격으로 실행될 때 제대로 작동하지 않는 것으로 보이는 약 25 분의 실행 시간이 소요되는 특정 저장 프로 시저가 있습니다. 이 저장 프로 시저가 수백만 개의 레코드를 처리하기 때문에이 25 분은 실제로 예상 시간입니다.
그래서 여기에 내가 가지고있는 문제가 있습니다. SQL Server Management Studio에서이 저장 프로 시저를 실행하면 약 25 분 내에 완료됩니다. 앱을 호스팅하는 서버의 내부 IP를 사용하여 웹 응용 프로그램에서이 저장 프로 시저를 로컬로 실행하면 약 25 분 내에 경쟁하고 서버는 응답을 되돌려 보내고 응용 프로그램의 상태를 업데이트합니다. 하지만 서버의 공용 IP를 사용하여 웹 응용 프로그램을 통해 원격으로 실행하면 저장 프로 시저가 실행되어 서버에서 25 분 이내에 완료되지만 앱이 서버에서 응답을 다시받지 못하고 바쁜 상태를 계속 유지합니다.
데이터베이스 서버에서 직접 추적하고 SQL 프로필러를 사용하여 저장 프로 시저 실행이 완료된 후에도 엔터티 프레임 워크에서 열려있는 연결을 추적하므로 저장 프로 시저가 실행되는 것을 알고 있습니다. 나는 모든 HTTP 트래픽을 추적하기 위해 바이올린을 사용하고 있으며, 여기에 내가 보는 것이있다.
공용 IP를 사용하여 웹 응용 프로그램을 통해 원격으로 실행하는 동안 내부 IP
를 사용하여 웹 응용 프로그램을 통해 로컬로 실행하는 동안
다른 모든 저장 프로 시저를 실행하는 데 몇 초 정도 걸릴하고 로컬에서 모두 작동하는 것 원격으로. Azure의 끝점 매핑이이 작업과 관련이 있는지 확실하지 않습니다. 이 저장 프로 시저를 실행할 때 commandtimeout 속성을 0으로 설정합니다.
도움이 될 것입니다!
이미지 링크 :
로컬 실행 : http://i.imgur.com/NGNre3T.png
원격 실행 : http://i.imgur.com/haB3fwm.png
좋아! Azure로드 밸런서가이 4 분 기본 시간 제한에 대해 읽었으며 4 분마다 또는 그 이하의 연결을 유지하기 위해 패킷을 보내는 제안을 따랐습니다. TCP 연결을 유지하기 위해 2 분마다 패킷을 보내려고했는데 어떤 이유로 든 도움이되지 않는 것 같습니다.끝점을 만들면서 유휴 시간 제한 값을 설정하는 방법이 있다는 것을 몰랐습니다. 당신이 게시 한 기사가 트릭을했습니다. 시간을 30 분으로 설정하고 지금까지 저장된 내용이 실행 중이며 서버가 실행 후 25 분 이내에 예상대로 응답했습니다. 고맙습니다! – Najir