【问题标题】:WCF cannot connect to endpoint after successfully adding service reference成功添加服务引用后,WCF 无法连接到端点
【发布时间】:2011-10-19 18:21:18
【问题描述】:

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

我可以通过“添加服务引用”将服务添加到我计算机上的客户端。我也可以毫无问题地“更新服务参考”。

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

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

没有可以接受消息的端点监听。这通常是由不正确的地址或 SOAP 操作引起的。有关详细信息,请参阅 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>

【问题讨论】:

  • 你的绑定是什么,它是自托管的,绑定端口上有防火墙,对 http 来说不是问题吗?
  • 感谢您的回复。请看上面。该端口在防火墙上是开放的,因为其他流量可以毫无问题地通过。
  • 你的服务的配置文件是什么?这就是问题所在。

标签: wcf client endpoint


【解决方案1】:

需要检查的一些陷阱:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    • 2014-05-08
    • 2011-12-23
    • 2013-02-22
    • 2012-02-15
    • 2016-11-21
    相关资源
    最近更新 更多