WCF не может подключиться к конечной точке после успешного добавления ссылки на службу - PullRequest
1 голос
/ 19 октября 2011

Я успешно опубликовал службу WCF на нашем производственном сервере.Я могу перейти на страницу и увидеть страницу WCF по умолчанию.

Я могу добавить службу через «Добавить ссылку на службу» клиенту на моем компьютере.Я также могу без проблем обновить справочник услуг.

Служба была подтверждена для работы на моем локальном компьютере с клиентом и без него, запустив отладчик по умолчанию, который поставляется с VS2010.

При попытке вызвать метод службы (из службы, размещенной на сервере) я получаю это исключение ..

Не было ни одной конечной точки, которая могла бы прослушать сообщение, которое могло бы принять сообщение.Это часто вызвано неправильным адресом или действием SOAP.См. InnerException, если имеется, для получения дополнительной информации.

InnerException ...

{"Удаленный сервер возвратил ошибку: (404) Not Found."}

IЯ также пытался запустить клиент на самом сервере, чтобы посмотреть, смогу ли я подключиться, но я получаю ту же ошибку.

Я даже пытался просто развернуть базовую службу WCF, созданную для вас, когда вы создаете библиотеку службы WCF.(очень просто), ничего не изменилось, успешно развернуто и получено та же ошибка.

Что я делаю не так?Я пошел по пути конфигураций IIS, SSL-сертификатов и т. Д., Но, похоже, ничего не помогло.Я чувствую, как будто я скучаю по чему-то очень простому здесь.

РЕДАКТИРОВАТЬ КОНФИГ КЛИЕНТА ...

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="BasicHttpBinding_IService1" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00"     sendTimeout="00:01:00"
                    allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                    messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
                    useDefaultWebProxy="true">
                    <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                         maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                    <security mode="None">
                        <transport clientCredentialType="None" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="UserName" algorithmSuite="Default" />
                    </security>
                 </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://SERVER_NAME.DOMAIN_NAME.com/TestService/TestService.Service1.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"
                contract="ServiceReference1.IService1" name="BasicHttpBinding_IService1" />
        </client>
    </system.serviceModel>
</configuration>

1 Ответ

0 голосов
/ 15 апреля 2013

Некоторые подводные камни для проверки:

1) Проверьте правильность URL-адреса службы в ваших файлах конфигурации.Это включает в себя протокол.Это случилось со мной недавно: файл .config имел «http://"», а веб-сервер был доступен только через HTTPS.

2) Отключите параметр «Требуется сертификат клиента» в IIS.) Если ваша служба находится внутри приложения asp.net, проверьте, существуют ли какие-либо ограничения для аутентификации / авторизации. Разрешите анонимный доступ к вашему .SVC

...