2014-11-24 2 views
0

나는 설정에 다음 코드를 코드에서 WCF 서비스가 : 나는 서비스를 시작하고 잘 작동하고WCF 풀링 한도를 늘리거나 줄이는 방법은 무엇입니까?

namespace Serviceman 
{ 
public class Hostman 
{ 

    public Uri VServicesTCPAddress = new Uri("net.tcp://localhost:8000/v-services"); 
    public ServiceHost VServicesHost = new ServiceHost(typeof(MyDemoService), new Uri("net.tcp://localhost:8000/v-services")); 

    public void ConfigureTcpService() 
    { 
     NetTcpBinding tcpBinding = new NetTcpBinding(); 
     ServiceMetadataBehavior sMBehavior = new ServiceMetadataBehavior(); 
     VServicesHost.Description.Behaviors.Add(sMBehavior); 
     VServicesHost.AddServiceEndpoint(typeof(IMetadataExchange), 
     MetadataExchangeBindings.CreateMexTcpBinding(), "mex"); 
     VServicesHost.AddServiceEndpoint(typeof(IAccountsService), tcpBinding, VServicesTCPAddress); 
    } 

} 

} 

을,하지만 난 내 고객의 여러 인스턴스를 연결할 때, 잠시 후 나는의 오류가 발생 사용 가능한 모든 채널을 사용했습니다. 이제는 연결 풀링 제한에 대한 기본값을 늘리거나 제거 할 수 있습니까?

+0

서비스 소비자는 응답을받은 직후 연결을 닫습니까? 그렇지 않은 경우 연결이 시간 초과 될 때까지 재사용 할 수 없습니다 (분 단위 일 수 있음). – DeanOC

+0

글쎄, 내가 그것을 닫으려면, WCF 돌봐 생각하지 코딩하지 않았습니다. 그래서 내가 그들을 닫으면 내가 다시 그 오류에 직면 할 기회가 있을까? – Medise

+0

SQL 연결과 동일한 방식으로 WCF 연결을 볼 수 있습니다. 즉, 최대한 빨리 닫을 수 있습니다. Enrico Campidoglio의 답변을이 [질문] (http://stackoverflow.com/questions/9061923/correct-way-to-close-wcf-4-channels-effectively)에서 보시면 클라이언트를 코딩해야한다고 생각합니다. . BTW, 나는 기본 WCF 최대 동시 세션 수가 100 x 서버 프로세서 수 (IIS를 사용하여 ur를 가정 할 때 IIS 관리자를 통해이를 확인할 수 있어야 함)라고 생각합니다. – DeanOC

답변

0

최대 연결을위한 당신의 선택이고 기본의 무언가에 TCP binding configuration

tcpBinding.PortSharingEnabled = true; 

또는, 다음과 같이 결합하여 TCP에

변경 가능 maxConnections을 포트 공유를 사용하면 상자 밖으로 10 .

+0

그래서 'maxConnections'는 서비스에 연결하는 모든 클라이언트에 대한 일반적인 제한 사항입니까, 아니면 각 클라이언트마다 고유 한 연결 수가 있습니까? 예를 들어 100으로 설정하면 모든 클라이언트 또는 각 클라이언트의 제한이 100이되는 것입니까? – Medise

+0

들어오는 모든 연결에 사용됩니다. – Glk