成功添加服务引用后,WCF无法连接到端点

时间:2011-10-19 18:21:18

标签: wcf client endpoint

我已在我们的生产服务器上成功发布了WCF服务。我可以导航到该页面并查看默认的WCF页面。

我可以通过“添加服务引用”将服务添加到计算机上的客户端。我也可以“更新服务参考”,没有任何问题。

通过运行VS2010附带的默认调试器,确认该服务可以在我的本地计算机上使用和不使用客户端。

尝试调用服务方法(来自服务器托管服务)时,我收到此异常..

没有端点侦听可以接受该消息。这通常是由错误的地址或SOAP操作引起的。有关更多详细信息,请参阅InnerException(如果存在)。

...的InnerException

{“远程服务器返回错误:(404)Not Found。”}

我也尝试在服务器上运行一个客户端,看看我是否可以连接但是我得到了同样的错误。

我甚至尝试过部署在您创建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 :(得分:0)

要检查的一些陷阱:

1)检查配置文件中的服务URL是否正确。这包括协议。它最近发生在我身上:.config文件有“http://”,网络服务器只能通过HTTPS访问。

2)在IIS上禁用“所需的客户端证书”设置。

3)如果您的服务位于asp.net应用程序中,请检查是否存在任何身份验证/授权限制。允许匿名访问.SVC