常量&#34; System.ServiceModel.EndpointNotFoundException:没有端点监听<service url =“”>&#34;错误</服务>

时间:2013-02-20 23:05:15

标签: wcf endpoint wcf-endpoint

我有一些WCF服务,在专用服务器上运行IIS。这些服务有他们的客户。总而言之,它可以工作,但每当我在客户端级别查找日志时,我通常都会看到这些错误:

System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at <Service URL> that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. 

---> System.Net.WebException: Unable to connect to the remote server 
---> System.Net.Sockets.SocketException: A socket operation was attempted to an unreachable network <Service IP>:80
   at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
   at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception)
   --- End of inner exception stack trace ---
   at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
   at System.Net.HttpWebRequest.GetRequestStream()
   at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()
   --- End of inner exception stack trace ---

Server stack trace:
   at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()
   at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

但在此之后,同一个程序会发送能正常工作的请求。

这是WCF服务的配置:

<netTcpBinding>
        <binding   name="config" closeTimeout="0:5:0" openTimeout="0:5:0" sendTimeout="0:5:0" receiveTimeout="0:5:0"
                 maxBufferPoolSize="8388608" maxBufferSize="8388608" maxReceivedMessageSize="8388608" maxConnections="8388608">
          <readerQuotas maxArrayLength="8388608" maxNameTableCharCount="8388608" maxStringContentLength="8388608"/>
          <security mode="None"/>
        </binding>
</netTcpBinding>

<basicHttpBinding>
        <binding  name="config2" closeTimeout="0:5:0" openTimeout="0:5:0" sendTimeout="0:5:0" receiveTimeout="0:5:0"
                 maxBufferPoolSize="838860800" maxBufferSize="838860800" maxReceivedMessageSize="838860800">
          <readerQuotas maxArrayLength="838860800" maxNameTableCharCount="838860800" maxStringContentLength="838860800"/>
          <security mode="None"/>
        </binding>
</basicHttpBinding>

服务行为:

<behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="false"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
          <dataContractSerializer maxItemsInObjectGraph="838860800"/>
</behavior>

我认为同时连接的数量可能存在限制。或者可能是IIS设置中的某些内容或WCF服务配置中的内容。但我无法找到什么,在哪里。

此外,NetTcpBinding配置的属性为MaxConnection,但basicHttpBinding没有。

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

以下是我自己的Web.config的解决版本(适合我的项目)。可以从以下工作样本中挑选有用的提示。 - Sujayyendhiren

  <service name="WelcomeSOAPXMLService">
    <endpoint address="http://localhost:16672/Service.svc" binding="basicHttpBinding"  contract="IWelcomeSOAPXMLService"/>