2011-04-26 3 views
12

Google 검색을 통해이 사이트를 방문하지 않았습니다.web.confg에서 WCF InstanceContextMode (Per Call, Single) 설정

은 내가 이렇게 클래스 이름을 장식하여 인스턴스를 설정할 수 있습니다 알고

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall, 
       ConcurrencyMode = ConcurrencyMode.Multiple)] 

을하지만 난 web.config 파일이 지정할 수 있습니다? 하지만 대부분의 가능성이 행동 섹션 (모드를 지정하는 방법 -

나는 내가 web.config/app.config에 여기 숫자가 인스턴스 모드에 따라 컨텍스트를 가지고 (최대 동시 사용자 등)을 조절 지정할 수있어 app.config/web.config)?

원래 우리는 Windows 서비스를 사용하려고했습니다. 이제 WAS를 사용하고 있습니다. WAS는 어떤 차이를 만들어 내지? 각 '호출 당'요청은 파이프 라인 작업으로 여전히 '서버'가됩니다.

감사

답변

0

당신은 설정 파일에 InstanceContextMode과 들면, ConcurrencyMode을 구성 WCF에 제한을 구축 할 수없는, 내가 MS가 자신의 이유가있다 확신합니다.

WAS에서 호스팅하는 경우 IIS 7/7.5가 설치된 웹 서버를 사용하는 경우 IIS 관리로 서비스를 관리하고 IIS 관리 기능을 많이 사용할 수 있기 때문에 WAS로 서비스를 호스팅하는 것이 좋습니다.

10

당신은 상자의 기능을 밖으로의 Web.config에 InstanceContextModeConcurrencyMode을 변경할 수 없습니다하지만 당신은 사용자 정의 확장 (행동이나 사용자 정의 ServiceHost + ServiceHostFactory + 설정 섹션) 그렇게하기를 작성할 수 있습니다. Here is the exampleInstanceContextMode을 변경하는 방법은 서비스 클래스의 속성에 정의하지 않고 변경하십시오.

WAS에서의 처리는 동일합니다. 각 서비스 유형에는 여전히 자체 서비스 호스트가 있으며 각 요청은 자체 스레드에서 처리됩니다.

1

이전 답변에 따라 약간의 작업 만 수행하면됩니다. 나는 최근에 고객을 위해이 작업을 수행해야했으며 여기에 문서화했습니다. 또한 사용자가 원하는 방식으로 구성되지 않은 경우 서비스가 시작되지 않도록 검사기를 제공했습니다. 자세한 내용은 여기 changing-wcf-concurrency-programatically입니다.