2017-05-17 1 views
1

인스턴스에 대한 Azure 웹 사이트 명확성은 이러한 인스턴스가 하나의 클라이언트 요청 (세션)이 팜의 다른 서버에 의해 서버가 될 수있는 웹 서버 팜 환경과 같이 여러 시스템에서 실행되고 있는지 확인합니다.Azure 웹 사이트 인스턴스가 정확히 무엇입니까

서버 팜 asp.net 응용 프로그램과 관련된 문제는 세션 변수가 느슨 할 수 있다는 것입니다.이 문제는 web.config에 컴퓨터 키를 추가하여 클라이언트 세션이 항상 동일한 서버에 의해 서버가되도록합니다. 그래서 세션 변수를 잃어 버리지는 않을 것입니다.

Azure 인스턴스는 어떻게 작동합니까? 그것은 우리가 동일한 계획에 따라 10 개의 웹 사이트를 가질 수 있다는 것을 의미하지 않습니다.

나는 아시아에서 asp.net 웹폼 기반 웹 사이트을 호스팅하고 있습니다. 정확히 인스턴스 작업이 얼마나 혼란 스럽습니까? 인터넷에 혼란을 일으키는 기사가 많이 있습니다.

답변

2

PaaS의 문제는 당신이 이 아니라고 생각하면은 신경 써야합니다. 당신이 상태 형 사이트가있는 경우에, 당신은 클라이언트가 동일한 인스턴스에 항상 얻을 수 있도록하기 위해 ARR 선호도 설정을 사용할 수 있습니다 : enter image description here

+1

장애가 발생하거나 자동 크기 조정으로 인해 인스턴스가 다운 된 경우 문제가 발생합니다.) – juunas

+0

ARR Affinity는 문제가 크게 해결되지만 실제 인스턴스가 다운 된 경우에도 세션을 잃어 버릴 수 있으므로 문제를 해결합니다. 내 이해 인스턴스에 가상 머신 같다. 그래서 내 측면에서 실패 증명은 SQL SERVER 기반 세션 일 수 있습니다. 이제는 세션 서버가 해당 사용자 계정에 대해 SQL Server가있는 SQL Server 클러스터 된 서버 또는 VR 시스템을 다운하면 어떻게되는지 또 다른 질문이 생깁니다. – Learning

+0

SQL Server가 하나의 옵션이지만 세션 정보를 저장하는 Azure 리소스가 Redis 캐시입니다. 표준 계층은 복제 및 장애 조치를 제공하며 99,99 % SLA를 제공합니다. 그게 아마도 당신이 얻을 수있는 최선 (100 % 솔루션이 없습니다). –

2

는 마틴 브랜들의 대답에 추가.

앱 서비스 계획에는 여러 인스턴스가있을 수 있습니다. 이 인스턴스는 해당 계획의 모든 앱을 실행합니다. 따라서 이것은 고전적인 웹 팜과 거의 같습니다. 그것은 관리하기 쉬운 방법입니다.

ARR 선호도가있는 고정 세션에 의존하는 대신 웹 팜에서 세션 정보를 유지하는 더 좋은 방법이 있습니다. 세션 데이터를 중앙 위치에 저장하십시오. 이를 위해 Azure Redis Cache 또는 SQL Database를 사용할 수 있습니다. ASP.NET 응용 프로그램에 바로 연결할 수있는 기성품의 세션 상태 공급자가 있습니다. 그렇게하면 세션 상태가 인스턴스에 저장되지 않으므로 클라이언트가 동일한 서버를 공격하는지 신경 쓸 필요가 없습니다.

ARR Affinity와 관련된 문제는 Azure가 인스턴스가 계속 실행되는 것을 보장하지 않는다는 것입니다. 하드웨어 오류로 인해 오류가 발생하여 세션 데이터의 일부가 손실 될 수 있습니다. 자동 크기 조정을 사용하는 경우에도 마찬가지입니다.

+0

Redis가 세션 정보를 저장하는 더 좋은 옵션이라는 데 동의합니다. –