2012-06-06 4 views
1

제 상황은 여러 시점에 에이전트 작업에 의해 시작되는 콘솔 응용 프로그램 인 "서비스 응용 프로그램"이 있다는 것입니다.콘솔 응용 프로그램을 직렬 응용 프로그램 실행 제한 조건에서 서비스 응용 프로그램으로 변환해야합니까?

내 요구 사항이 조금 바뀌었고 인벤토리에서 실행되는 클라이언트 응용 프로그램에서 작업 스케줄러로만 실행해야한다고 생각한 사항이 필요합니다.

한 가지 문제는 서비스가 .NET 4.0 (클라이언트 프로파일과 반대)을 사용하며 설치 프로그램에이를 부과하지 않고 다른 버전의 실행 가능성을 원하지 않는다는 것입니다. 이런 이유로 라이브러리로 코드를 푸는 것이 잘못되었습니다.

또 다른 문제점은 현재 에이전트 작업의 스케줄링을 제어하므로 서비스의 둘 이상의 인스턴스가 동시에 명령을 실행하는 것과 같은 기능을 설계하지 않았다는 것입니다. 이 경우에 특별히 의존하는 논리는 없지만 모든 것이 작동한다고 가정하는 것에 대해 기분이별로 들지 않습니다. 단지 그렇게 작동하도록 설계되지 않았습니다.

기본적으로 여기서해야 할 일이 무엇인지 알고 있습니다. 내가 원하는 것은 그것을 성취하기위한 현대적이고 효율적인 방법이다. WCF를 봐야할까요? 정말로 간과 할 수있는 간단한 방법이 있습니까?

다음은 희망을 명확하게하기 위해 내가 생각하고있는 그림입니다.

enter image description here

+0

WFC 또는 WCF? : -/ –

+0

@ColeJohnson, 고마워 typo가 수정되었습니다. –

답변

2

는 WCF가 올바른 선택해야하며, 그것은 간단하고 강력하다.

클라이언트 프로파일을 지원 - 인스턴스 및 서비스의 http://msdn.microsoft.com/en-us/library/cc716765.aspx

번호가 WCF는 비헤이비어를 사용하여 제어된다. 아래의 구성은 동시에 하나의 메서드 만 실행되도록 보장해야합니다. 동시에 여러 메서드를 실행해도 하나의 인스턴스 만 실행해야하는 경우 매개 변수 (maxConcurrentCalls="1" 제거)를 사용하여 재생할 수 있습니다.

<behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <serviceThrottling 
      maxConcurrentCalls="1" 
      maxConcurrentSessions="1" 
      maxConcurrentInstances="1" 
      /> 
     </behavior> 
     </serviceBehaviors> 
</behaviors> 
+0

인트라넷에서 IIS를 호스팅하는 일반적인 컨테이너는 무엇입니까? –

+1

인트라넷이나 인터넷인지는 중요하지 않습니다. 일반적으로 IIS는 더 나은 관리 기능을 제공하므로 더 좋습니다. 로깅, SSL, 사용자 보안, 구성 편집을위한 GUI 및 기타 여러 기능을 즉시 사용할 수있는 도구가 제공됩니다. –

관련 문제