0

IIS에서 실행되는 ASP.NET을 사용하여 웹 응용 프로그램을 개발하고 싶습니다.웹 앱을 방문하는 각 사용자를 서비스에 의해 할당 된 별도의 임시 프로세스와 연관시키는 방법은 무엇입니까?

사용자가 MAXIMA 입력 명령을 제출하면 코드 숨김이 사용자 지정 Windows 서비스에 외부 어셈블리를 실행하는 새 고유 임시 프로세스를 만들도록 요청합니다.

보다 정확하게는 모든 사용자에 대해 하나의 Windows 서비스 만 제공되지만 각 사용자는 외부 어셈블리를 실행하는 고유 한 임시 프로세스와 연결됩니다.

Windows 서비스는 특정 포트에서 수신 대기하는 단일 소켓과 통신을위한 비동기 소켓 목록을 포함합니다. 목록의 각 소켓은 클라이언트 소켓으로 작동하는 외부 어셈블리를 실행하는 고유 한 임시 프로세스와 통신합니다.

참고 사항 : 외부 어셈블리가 배치 파일 (관리되는 어셈블리가 아님)이므로 응용 프로그램 도메인이 아닌 프로세스를 사용합니다.

내 질문은 :

  1. 방법 뒤에 코드에서 Windows 서비스를 호출?
  2. 각 사용자를 고유 한 임시 프로세스와 연결하는 방법은 무엇입니까?
  3. 더 많은 사용자가 동시에 작업하는 경우 확장 성을 향상시키는 방법은 무엇입니까?
  4. 사용자가 입력 한 Maxima 입력 명령이 장기 실행 프로세스를 유발할 경우 진행 상황을 사용자에게 알려주는 현명한 방법은 무엇입니까?

    https://sourceforge.net/projects/aspmaxima/forums/forum/1190702/topic/3786806가 사전에 감사합니다

다음 링크 내 프로젝트에 대한 자세한 내용을 제공합니다.

답변

1

MVC 앱에서 코드 숨김을 사용해서는 안됩니다.

관리되지 않는 코드로 interoprating 동안 확장 성이 어렵습니다. 이렇게하는 유일한 방법은 문제를 해결하는 것입니다.

  • 관리되지 않는 앱을 ​​실행하면 이미 자체 프로세스가 있습니다.
  • 모니터링 기능이있는 웹 응용 프로그램에서 호출 된 서비스에 여러 개의 작업 흐름이 있습니까? Windows Server AppFabric을 설명하고 있습니다. AppFabric을 사용하여 서비스를 호스팅하십시오.이 모든 것을 직접 작성하지 않아도됩니다.
  • 확장 성과 관련하여 관리되지 않는 프로세스를 처리 할 때는 동시에 시작할 수있는 수를 제한해야합니다. 시행 착오는 특정 하드웨어에 대한 최적을 결정하는 데 필요합니다.
  • 관리되지 않는 작업의 진행 상황을 모니터링 할 수있는 앱이있는 경우에만 모니터링 할 수 있습니다.
  • 시작된 응용 프로그램이 기본적으로 서비스의 (일반적으로 제기 된) 사용 권한을 상속하므로 서비스에서 임의의 비 관리 코드를 시작하는 것은 위험합니다. 실행되는 앱에 대해 기본 대신 제한된 특정 자격 증명을 사용하는 것이 좋습니다.