Нет конечной точки для службы WCF в приложении ASP.NET

Я создал и разместил службу http://www.royalbatteriesws.somee.com/Default.svc

Я хочу протестировать свой сервис на предмет его функциональности.

Я добавил ссылку на службу на свой веб-сайт Asp.Net под названием RoyalBatteriesWS

Поскольку конечная точка не добавлялась автоматически в файл web.config, мне пришлось добавить ее вручную.

web.config файл:

System.ServiceModel и ServiceBehaviors разделы:

<service name="RoyalBatteriesWS" behaviorConfiguration="HelloServiceBehavior">
    <endpoint 
        address ="http://www.royalbatteriesws.somee.com/Default.svc" 
        binding="basicHttpBinding" 
        contract="RoyalBatteriesWS.IService">
    </endpoint>
</service>

<serviceBehaviors>
    <behavior name="HelloServiceBehavior">
        <serviceMetadata httpGetEnabled="true" />
    </behavior>
</serviceBehaviors>

я получаю исключение

Не удалось найти конечную точку по умолчанию, которая ссылается на контракт «RoyalBatteriesWS.Iservice» в разделе конфигурации клиента ServiceModel.

Пожалуйста, может ли кто-нибудь указать на мою ошибку?

Я просмотрел предыдущие сообщения, и я не мог найти то, что работает для меня.

Спасибо


person user3503106    schedule 06.04.2014    source источник


Ответы (1)


Атрибут name="..." вашего <service> должен точно совпадать с полным именем класса .NET, реализующего эту службу.

Это означает: это должно быть точное имя класса и все пространства имен этого класса.

Так что, скорее всего, ваш класс обслуживания называется RoyalBatteriesWS, но есть большая вероятность, что он хранится в каком-то пространстве имен, поэтому добавьте это пространство имен к этому атрибуту, и все будет готово!

С другой стороны, поскольку вы сказали, что добавили ссылку на службу — вы действительно хотите настроить службу здесь — это на стороне сервера? вещей (где закодирован фактический класс обслуживания).

Разве вы не хотите настроить класс, который потребляет/использует эту службу - клиент??

Если да - используйте тег <client> (вместо <service>):

<client name="RoyalBatteriesWS">
    <endpoint 
        address ="http://www.royalbatteriesws.somee.com/Default.svc" 
        binding="basicHttpBinding" 
        contract="RoyalBatteriesWS.IService">
    </endpoint>
</client>
person marc_s    schedule 06.04.2014
comment
Спасибо за ответ. Мне не хватало привязки метаданных в файле конфигурации веб-сервиса. ‹services› ‹service behaviorConfiguration=SimpleServiceBehavior name=RoyalBatteriesWS.Default› ‹endpoint address=binding=basicHttpBinding Contract=RoyalBatteriesWS.IService /› ‹endpoint address=mex binding=mexHttpBinding Contract=IMetadataExchange /› ‹/service› ‹/services› После добавление этого в файл конфигурации WCF, добавление serviceRefernce в клиентское приложение создает конечную точку НА СВОЕМ СОБСТВЕННОМ Так что моя работа выполнена :) - person user3503106; 06.04.2014