2012-02-21 2 views
2

Что следует указывать в параметре "endpointConfigurationName" конструктора DuplexClientBase?Что следует указывать в «endpointConfigurationName» конструктора DuplexClientBase?

Независимо от того, что я ставлю там клиент бросает execption, что говорит «Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт„ServiceReference1.IClientFulfillmentPipeService“в разделе конфигурации клиента ServiceModel. Это может быть потому, что конфигурационный файл был найден для вашего приложения , или потому, что никакой элемент конечной точки, соответствующий этому контракту, не найден в клиентском элементе ».

Я сгенерировал прокси-сервер, используя мастер «Добавить служебную ссылку». Вот исходный код клиента:

class Program 
{ 
    static void Main() 
    { 
     try 
     { 
      var client = new ClientFulfillmentPipeServiceClient(new InstanceContext(new Wrapper()), "*", "net.tcp://localhost:9000/svc"); 
      client.Initialize(1234, "Test"); 
      client.Close(); 
     } 
     catch (Exception ex) 
     { 
      Debug.WriteLine(ex.Message); 
     } 
    } 
} 

И у меня есть пример сервера WCF, написанного как консольное приложение. Вот реализация:

static void Main() 
{ 
    UiWcfSession.OnInitialize += ClientInitialize; 

    var baseAddresses = new Uri("net.tcp://localhost:9000/"); 

    var host = new ServiceHost(typeof(UiWcfSession), baseAddresses); 

    var reliableSession = new ReliableSessionBindingElement { Ordered = true, InactivityTimeout = TimeSpan.MaxValue }; 
    var binding = 
     new CustomBinding(reliableSession, new TcpTransportBindingElement()) { ReceiveTimeout = TimeSpan.MaxValue }; 

    host.AddServiceEndpoint(typeof(IClientFulfillmentPipeService), binding, "svc"); 

    var metadataBehavior = new ServiceMetadataBehavior(); 
    host.Description.Behaviors.Add(metadataBehavior); 
    var mexBinding = MetadataExchangeBindings.CreateMexTcpBinding(); 
    host.AddServiceEndpoint(typeof(IMetadataExchange), mexBinding, "mex"); 

    host.Open(); 

    Thread.CurrentThread.Join(); 
} 

private static void ClientInitialize(int uiprocessid, string key) 
{ 
    Debug.WriteLine("ClientInitialize"); 
} 

Я не использую xml configs.

Не могли бы Вы помочь мне?

ответ

2

Похоже, я не могу использовать этот конструктор, если не добавить файл конфигурации .xml.

В итоге я использовал другой, который принимает CustomBinding и EndpointAddress в качестве параметров.

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