Проблема с конечной точкой C # WebService

Я создаю клиент веб-сервиса. И у меня проблема - в MainWindow.xaml есть сообщение: «Не удалось найти элемент конечной точки с именем« LightsWSSoap »и контракт« LightsWS.LightsWSSoap »в разделе конфигурации клиента ServiceModel. Это может быть связано с тем, что для вашего приложения не найден файл конфигурации, или потому, что в клиентском элементе не может быть найден элемент конечной точки, соответствующий этому имени. ' В этом файле у меня есть что-то вроде:

xmlns:vm="clr-namespace:LightsClient2.ViewModels"
<Window.DataContext>
    <vm:MainWindowViewModel />
</Window.DataContext>

А в MainWindowViewModel используется конструктор веб-сервиса:

LightsWSSoap lService = new LightsWSSoapClient("LightsWSSoap");

Где LightsWS - это название Сервиса.

Есть файл app.config и в нем есть определения enpoints:

    <client>
        <endpoint address="http://xxx/Lights/LightsWS.asmx"
            binding="basicHttpBinding" bindingConfiguration="LightsWSSoap"
            contract="LightsWS.LightsWSSoap" name="LightsWSSoap" />
        <endpoint address="http://xxx/Lights/LightsWS.asmx"
            binding="customBinding" bindingConfiguration="LightsWSSoap12"
            contract="LightsWS.LightsWSSoap" name="LightsWSSoap12" />
    </client>

Что не так? Любые идеи?


person rideronthestorm    schedule 06.12.2010    source источник
comment
Есть LightsWS.LightsWSSoap - интерфейс? (Должно быть) Если да, то почему бы не начать с I (LightsWS.ILightsWSSoap). Какой тип конечной точки вы собираетесь использовать? basicHttpBinding или customBinding?   -  person The Smallest    schedule 07.12.2010
comment
Это интерфейс, автоматически созданный VS; на данный момент это базовый   -  person rideronthestorm    schedule 07.12.2010
comment
Вы уже решили свою проблему?   -  person Greg Sansom    schedule 15.12.2010


Ответы (3)


Вам нужно будет настроить конечную точку клиента в файле App.Config в вашем приложении WPF.

Если файл App.Config еще не существует, вы можете создать его, добавив новый элемент в свой проект и выбрав «Файл конфигурации приложения».

Содержимое App.Config должно выглядеть примерно так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <client>
      <endpoint binding="wsHttpBinding" contract="LightsWS.LightsWSSoap" name="LightsWSSoap"  />
    </client>
  </system.serviceModel>
</configuration>

В MSDN есть гораздо более подробная информация - http://msdn.microsoft.com/en-us/library/ms731745%28VS.90%29.aspx.

person Greg Sansom    schedule 06.12.2010

Вы должны добавить файл app.config с определением вашей конечной точки. Обычно его создает Visual Studio. Но если вы создали свою ServiceReference в другой сборке (например, это отдельная dll), просто скопируйте app.config из этой сборки в свой WpfApplication.

person The Smallest    schedule 06.12.2010

Попробуйте идеи из этой темы, особенно пространства имен.

person SteveCav    schedule 06.12.2010