【问题标题】:There was no endpoint listening at (url) that could accept the message没有在 (url) 处侦听的端点可以接受消息
【发布时间】:2021-08-29 02:21:41
【问题描述】:

我正在构建一个 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。

【问题讨论】:

  • 远程服务没有启动,或者你打错了端口。
  • @LynnCrumbling,我也怀疑端口错误。你知道我该如何解决吗?
  • 从这条消息中,您点击了 5758。您选择了吗?你使用的是 Visual Studio 的开发服务器,那是随机端口吗?
  • 一件好事是: 1) 运行另一个 VisualStudio 实例,(如果您也控制应用程序的服务器端)。 2) 在该 Visual Studio 中,以调试模式(内部 IIS(或其他)服务器环境)启动服务器应用程序。 3)确保它运行并且它运行在你想要它的位置(地址,端口)。 4)重新配置您的解决方案(在本例中为“客户端”,以便它尝试连接到“服务器视觉工作室”)。 5)运行它,如果它通信良好,那么问题出在网络/防火墙/权限或服务服务器刚刚没有启动。是的,大部分都在 Web/App.config 中
  • @Cheshie 你错过了重点,我假设你使用 VisualStudio 在(示例)localhost:5758 上启动服务器,只是为了确保错误不在你的一方应用程序,而不是在通信方面。如果您不控制服务器应用程序,那么您可以模拟它(或其行为),即运行一个小服务,伪装成您要调用的服务(它可以明显更小,只是为了找到出来测试)。如果你进展顺利,打电话给它,得到回应,那么你就知道问题出在哪里了,我想这也很有帮助。

标签: c# asp.net soap


【解决方案1】:

进入你网站的webconfig页面,寻找标签端点,并检查地址属性中的端口,可能是端口号发生了变化

【讨论】:

    【解决方案2】:

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

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

    1. 打开 IIS
    2. 点击您的网站和/或映射的应用程序
    3. 单击功能视图,然后单击请求过滤
    4. 单击 - 编辑功能设置。

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

    【讨论】:

    • 通过 web.config 设置值似乎可行。\
    • 嗨,这个人就是我在应用和更改这些设置后至少 36 小时一直在为这个问题而苦苦挣扎的爱人。
    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      简短回答,但您是否打开了 Skype?默认情况下,这会特别干扰使用端口:80 的 ASP.NET(以及一般的本地主机)。

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

      【讨论】:

        【解决方案5】:

        试试这个:

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

        有时端口更改并产生错误。

        【讨论】:

          【解决方案6】:

          我尝试了一堆这样的想法来让 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>
          

          【讨论】:

            【解决方案7】:

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

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

            【讨论】:

              【解决方案8】:

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

              <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”应该相同。

              希望这会对某人有所帮助

              【讨论】:

                【解决方案9】:

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

                【讨论】:

                  【解决方案10】:

                  我将我的网站和应用绑定更改为新端口,它对我有用。由于网站使用的端口不可用,可能会发生此错误。因此,有时只需重新启动机器即可解决问题

                  -编辑-

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

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

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

                  任务列表 /FI "PID eq"

                  1. 打开任务管理器,找到这个进程并停止它。

                  (注意-确保您没有停止 Net.tcp 服务)

                  【讨论】:

                  • 您也可以通过运行“taskkill /F /IM OneApp.IGCC.WinService.exe”或“taskkill /F /PID 4188”来停止进程
                  【解决方案11】:

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

                  【讨论】:

                    【解决方案12】:

                    单击您创建的服务,右键单击它,然后在重建应用程序后选择更新引用

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 2016-03-25
                      • 2010-12-01
                      • 2018-06-06
                      • 1970-01-01
                      • 2023-03-18
                      相关资源
                      最近更新 更多