Невозможно подключиться к моей службе WCF прямо из коробки - PullRequest
2 голосов
/ 27 февраля 2010

У меня есть служба, которую я пытаюсь использовать в модульном тесте. На данный момент я просто пытаюсь создать экземпляр этой вещи. После многочасовой ошибки «Не удалось найти элемент конечной точки по умолчанию, который ссылается на контракт» и я не смог ее выяснить, я полностью удалил потребителя и начал с нуля. Все, что я сделал, это добавил ссылку на сервис в свой тестовый проект, направил его на мой сервис, нажал «GO» и все. Все еще не работает. Я не трогал строку кода, но она не работает сразу после того, как я позволил VS создать ее.

Вот соответствующая строка в моем app.config для тестового проекта:

<client>
    <endpoint address="http://mike-laptop/kbs/FFEDI/Service.svc"
       binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IEdiService"
       contract="ServiceReference2.IEdiService" name="BasicHttpBinding_IEdiService" />
</client>

В моем модульном тесте, вот мой метод:

public void CreateWebServiceInstance()
{
    ServiceReference2.EdiServiceClient webService = new ServiceReference2.EdiServiceClient();
    string svcAddress = webService.Endpoint.Address.ToString();
    Console.WriteLine("Address is: " + svcAddress);
    Assert.IsTrue(svcAddress.Equals("http://mike-laptop/kbs/FFEDI/Service.svc"));  // test
}

Я получаю ошибку:

System.InvalidOperationException: Не удалось найти конечную точку по умолчанию элемент, который ссылается на контракт «ServiceReference2.IEdiService» в Конфигурация клиента ServiceModel раздел. Это может быть потому, что нет файл конфигурации был найден для вашего приложение, или потому что нет конечной точки элемент, соответствующий этому контракту, может быть найденным в клиентском элементе.

Опять же, на этот раз я ничего не изменил. Есть идеи?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2010

Мне кажется на первый взгляд прекрасным ... несколько идей для проверки / обдумывания / проверки:

  • app.config вашего тестового проекта вообще читается? Например. это вообще интерпретируется? В вашем каталоге bin \ debug есть TestProject.exe.config? Я думаю, что, может быть, тестовый бегун играет некоторые трюки и вообще не читает конфигурацию.

  • или что произойдет, если вы укажете имя конечной точки клиента при создании клиента службы?

    ServiceReference2.EdiServiceClient webService = 
        new ServiceReference2.EdiServiceClient("BasicHttpBinding_IEdiService");
    

Это вообще что-то меняет?

0 голосов
/ 27 февраля 2010

Служба размещена в IIS? Вы можете поразить это в браузере? У вас есть ... в вашей конфигурации? Вы пытались передать имя конфигурации привязки в конструктор?

...