即使它是一个端点,它也会抛出 EndpointNotFoundException

Posted

技术标签:

【中文标题】即使它是一个端点,它也会抛出 EndpointNotFoundException【英文标题】:It throws EndpointNotFoundException even though it is an Endpoint 【发布时间】:2022-01-22 04:41:27 【问题描述】:

为了获取报告,我们将数据从我们的主项目发送到报告服务。 主项目是用.net 3.1开发的。服务类型:WCF。要使用该服务,我们将其作为服务引用添加到项目中。我们可以使用服务的子方法如下。

WebService1SoapClient service = new WebService1SoapClient(WebService1SoapClient.EndpointConfiguration.WebService1);

var serviceOutput = await service.ReportsAsync(modelService);

当我在本地运行程序并想要得到报告时,我可以得到一个没有任何错误的报告。但是当我尝试在服务器端运行它时,出现以下错误。你能帮帮我吗?

System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at http://xxx.xxx.com/WebService1.asmx that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

web.config 文件中的端点

<system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="ReportServiceBehavior">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <bindings>
            <basicHttpBinding>
                <binding name="ReportServiceBinding" maxReceivedMessageSize="4194304" transferMode="Streamed">
                    <readerQuotas maxArrayLength="4194304" />
                </binding>
            </basicHttpBinding>
        </bindings>
        <services>
            <service behaviorConfiguration="ReportServiceBehavior" name="[ProjectName].ReportPages.ReportService1">
                <endpoint address="" binding="basicHttpBinding" bindingConfiguration="ReportServiceBinding" contract="DevExpress.XtraReports.Service.IReportService" />
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            </service>
        </services>
    </system.serviceModel>

【问题讨论】:

【参考方案1】:

您可以尝试以下步骤: 1.可以在配置中定义端点地址。

<services>
  <service behaviorConfiguration="ReportServiceBehavior" name="[ProjectName].ReportPages.ReportService1">
     <endpoint address="http://xxx.xxx.com/WebService1.asmx" binding="basicHttpBinding" bindingConfiguration="ReportServiceBinding" contract="DevExpress.XtraReports.Service.IReportService" />
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>

2.我建议你检查一下服务器上是否有应用程序正在监听该端口,并且没有其他程序正在监听该端口,并且你没有设置任何防火墙规则来阻止该服务端口。 3.尝试通过在配置中将此参数设置为true来启用显示失败。 &lt;serviceDebug includeExceptionDetailInFaults = "True" /&gt;。希望这将提供更详细的信息。

【讨论】:

首先感谢您的回答。我将地址添加到端点,但它不起作用。此外,我们在服务提供商的服务器上托管报告服务。当我联系服务提供商时,他说防火墙设置没有问题。是否需要将 IncludeException 设置添加到主程序或服务中? 您可以尝试在 web.config 中将 includeExceptionDetailInFaults 设置为 true,或者您可以 [Enable Tracing] (docs.microsoft.com/en-us/dotnet/framework/wcf/diagnostics/…) 一个 wcf 服务来帮助您诊断确切的问题。你可以看看this post有没有帮助。 如你所说,我在 web.config 文件中添加了 includeException 设置。但错误信息没有改变。 你可以看看这些帖子,看看是否有帮助。social.msdn.microsoft.com/Forums/vstudio/en-US/… && social.msdn.microsoft.com/Forums/en-US/… social.msdn.microsoft.com/Forums/en-US/… && social.msdn.microsoft.com/Forums/vstudio/en-US/…

以上是关于即使它是一个端点,它也会抛出 EndpointNotFoundException的主要内容,如果未能解决你的问题,请参考以下文章

为啥即使元素存在,硒也会抛出未找到元素的错误? [复制]

为啥即使使用了调用,组合框也会抛出异常

为啥即使配置文件设置为分发,xcode 也会抛出此错误?

为啥即使我 .catch() Promise.all() 也会抛出异常?

为啥我的数组列表即使在初始化后也会抛出空指针异常?

即使使用 Scala 测试的 @PrepareForTest,PowerMockito 也会抛出 ClassNotPreparedException