没有端点侦听(url)可以接受该消息

时间:2014-06-26 18:44:48

标签: c# asp.net soap

我正在构建一个ASP.NET网站 - 它是一个包含一些项目,数据库和Web服务的解决方案。一切都运行正常,但上次我尝试运行该项目时,我收到以下错误:

There was no endpoint listening at http://localhost:[number]/BooksWS.svc that could accept the
message. This is often caused by an incorrect address or SOAP action. See InnerException, 
if present, for more details.

内部例外说:

Unable to connect to the remote server

这种错误有点突然出现,所以我不确定我应该提供哪些其他信息。有谁知道为什么会发生这种情况?

我想即使是一般答案也可以提供帮助,我在网络上发现的有关此错误的唯一信息与WCF有关。

11 个答案:

答案 0 :(得分:10)

转到您网站的网页配置页面,查找标记端点,然后检查地址属性中的端口,可能是端口号发生了变化

答案 1 :(得分:9)

我刚才遇到的另一种情况 - 当请求大小大于IIS中设置的请求大小作为限制时,您也可以得到该错误。

检查IIS请求限制,如果它低于您的需要,请增加它。 以下是检查和更改IIS请求限制的方法:

  1. 打开IIS
  2. 点击您的网站和/或您映射的应用
  3. 单击“功能”视图,然后单击“请求过滤”
  4. 点击 - 修改功能设置。
  5. Edit Feature Settings

    我刚刚在堆栈中发现了另一个线程 IIS 7.5 hosted WCF service throws EndpointNotFoundException with 404 only for large requests

答案 2 :(得分:3)

另一种可能的情况是确保您已安装 WCF激活功能。 转到服务器管理器>特征>添加功能

enter image description here

答案 3 :(得分:1)

简短的回答,但你有Skype打开吗?这默认情况下会干扰ASP.NET(通常是localhosts),使用端口:80。

在Windows中:转到工具 - >选项 - >高级 - >连接并取消选中“使用端口80和443作为传入连接的替代方案”框。

答案 4 :(得分:1)

试试这个:

  • 删除服务实例。
  • 创建服务的新实例。

有时端口会发生变化并产生错误。

答案 5 :(得分:1)

如果您使用的是自定义绑定,请确保在配置文件中为自定义绑定(服务器和客户端)添加相同的名称

<bindings>
<customBinding>
 <binding name="BufferedHttpServerNoAuth" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00">
          <gzipMessageEncoding innerMessageEncoding="textMessageEncoding" MaxArrayLength="10485760" MaxBytesPerRead="31457280" MaxStringContentLength="102400000" />
          <httpsTransport hostNameComparisonMode="StrongWildcard" manualAddressing="False" maxReceivedMessageSize="31457280" authenticationScheme="Anonymous" bypassProxyOnLocal="True" realm="" useDefaultWebProxy="False" />
</binding>
</customBinding>
</bindings>

绑定名称“ BufferedHttpServerNoAuth ”在两者中应该相同。

希望这可以帮助某人

答案 6 :(得分:0)

当我尝试从本地的Windows应用程序调用托管在新服务器中的WCF服务时遇到此问题。我得到了相同的错误消息,最后有这个“没有连接,因为目标机器主动拒绝它127.0.0.1:8888”。我不知道我是错还是正确,但我觉得无论何时服务器从我的Windows应用程序收到请求它都会路由到其他东西。所以我做了一些阅读,并在服务主机项目的Web.config 中添加。之后,一切都像魔术一样。

<system.net>
    <defaultProxy enabled="false">
    </defaultProxy>
</system.net>

答案 7 :(得分:0)

我通过传递与端点的绑定来解决它 “http://abcd.net/SampleFileService.svc/basicHttpWSSecurity

答案 8 :(得分:0)

这是古老的历史,但是我碰到了这个问题,对我来说,解决方法是回收IIS中网站的应用程序池。轻松修复,一次。

答案 9 :(得分:0)

我尝试了许多这样的想法来使HTTPS正常工作,但是对我来说,关键是添加协议映射。这是我的服务器配置文件,它适用于HTTP和HTTPS客户端连接:

  <system.serviceModel>
    <protocolMapping>
      <add scheme="https" binding="wsHttpBinding" bindingConfiguration="TransportSecurityBinding" />
    </protocolMapping>
    <services>
      <service name="FeatureService" behaviorConfiguration="HttpsBehavior">
        <endpoint address="soap" binding="wsHttpBinding" contract="MyServices.IFeature" bindingConfiguration="TransportSecurityBinding" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="HttpsBehavior">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <bindings>
      <wsHttpBinding>
        <binding name="TransportSecurityBinding" maxReceivedMessageSize="2147483647">
          <security mode="Transport">
            <transport clientCredentialType="None" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

答案 10 :(得分:0)

我将网站和应用程序绑定更改为新端口,并且对我有用。因为网站使用的端口不可用,所以可能会发生此错误。因此有时通过简单地重新启动机器即可解决问题

-编辑-

替代(更简单)的解决方案:reference

  1. 获取正在使用端口的进程的PID CMD命令- netstat -aon | findstr 0.0:80

Command 1

  1. 使用PID获取进程名称-

任务列表/ FI“ PID eq”

Command2

  1. 打开任务管理器,找到此过程并停止它。

(注意-确保不停止Net.tcp服务)