2011-06-30 3 views
0

У меня есть клиенты, которые загружают файлы на мой сервер, используя службу wcf с потоковой передачей. Код на клиенте что-то вроде этого (опуская некоторые детали):реализация маршрутизации в мою службу wcf

NetTcpBinding binding = new NetTcpBinding(); 
EndpointAddress address = new EndpointAddress("net.tcp://" + ipAddress + ":5000/DataUploader"); 
ChannelFactory<IDataUploader> channel = new ChannelFactory<IDataUploader>(binding, address); 
IDataUploader uploader = channel.CreateChannel(); 

try 
{ 
    uploader.Upload(msg); 
    ConsoleText.Record("The file was sent...\n"); 
} 
catch (CommunicationException) 
{ 
    ConsoleText.Record("The file was not sent...\n" + "Interrupted connection...\n"); 
} 
finally 
{ 
    uploadStream.Close(); 
    ((IClientChannel)uploader).Close(); 
} 

Я хочу реализовать службу маршрутизации между сервером и клиентом, служба маршрутизации будет что-то вроде этого:

private static void ConfigureRouterViaCode(ServiceHost serviceHost) 
{ 
    string clientAddress = "http://localhost:5000/DataUploader"; 
    string routerAddress = "http://localhost:5000/RouterService"; 

    Binding routerBinding = new WSHttpBinding(); 
    Binding clientBinding = new WSHttpBinding(); 

    serviceHost.AddServiceEndpoint(typeof(IRequestReplyRouter), routerBinding, routerAddress); 

    ContractDescription contract = ContractDescription.GetContract(typeof(IRequestReplyRouter)); 
    ServiceEndpoint client = new ServiceEndpoint(contract, clientBinding, new EndpointAddress(clientAddress)); 

    RoutingConfiguration rc = new RoutingConfiguration(); 

    List<ServiceEndpoint> endpointList = new List<ServiceEndpoint>(); 
    endpointList.Add(client); 

    rc.FilterTable.Add(new MatchAllMessageFilter(), endpointList); 

    serviceHost.Description.Behaviors.Add(new RoutingBehavior(rc)); 
} 

Смущает, как я могу сначала подключить своего клиента к службе маршрутизации. Это хороший подход? Благодарю.

ответ

0

Ваш подход правильный. На клиенте измените адрес, указывающий на службу маршрутизации, оставив все остальные настройки такими, какие они есть. Я предлагаю вам изучить http://msdn.microsoft.com/en-us/library/ee517423.aspx или найти некоторые демонстрационные возможности маршрутизации.

Смежные вопросы