在 wcf 客户端 app.config 错误(自主机)中找不到端点元素

Posted

技术标签:

【中文标题】在 wcf 客户端 app.config 错误(自主机)中找不到端点元素【英文标题】:could not find endpoint element in wcf client app.config error(self-host) 【发布时间】:2012-06-04 15:26:46 【问题描述】:
<configuration>
    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
                <binding name="ep1" 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://localhost:57582/Service1.svc" binding="basicHttpBinding"
                bindingConfiguration="ep1" contract="ServiceReference1.IService1"
                name="ep1" />
        </client>
    </system.serviceModel>
</configuration>

这是我在自动生成的 app.config 文件中对客户端端点的配置,但我仍然收到以下错误: 在 ServiceModel 客户端配置部分中找不到名称为“ep1”和合同“ServiceReference1.IService1”的端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为在客户端元素中找不到与此名称匹配的端点元素。

我正在使用 ::

Service1Client wcf = new Service1Client("ep1")


它现在可以工作了。我刚刚在 web.config 中定义了来自自动生成的 app.config 文件的整个解决方案的客户端端点。它现在可以工作了。

【问题讨论】:

可能是个愚蠢的问题 - 但 bin 文件夹中是否存在 [yourappname].exe.config 文件? 【参考方案1】:

如果这是一个 Windows 应用程序项目,您需要添加一个“应用程序配置文件”(保留名称为 app.config),如果您的项目根目录中已经有一个,没问题。

如果它是一个 web 项目 - 那么你需要将它作为 web.config 的目标。

接下来,将上面的配置复制到那里,然后重新构建并运行。然后它应该可以工作了。

【讨论】:

不,这是一个 Web 应用程序项目。目前我正在尝试在本地使用它 好的 - Web 项目是客户端吗?还是服务器?还是两者兼而有之? 暂时两者兼而有之。但稍后我将使用 IIS 托管它。【参考方案2】:

几乎可以肯定的是,您正在运行的代码正在从没有定义此端点的配置文件中读取。您确定您正在从构建输出位置查看配置文件吗?

我猜你需要在配置文件中设置 copy local = true。

【讨论】:

这个端点已定义。我已经粘贴了上面的配置代码。 你能把配置文件的文件路径也贴出来吗? 它在我添加服务引用的类文件下。 你能看到bin文件夹中的文件吗? 没有创建 bin 文件夹。它与添加服务引用时自动生成的 app.config 文件相同。

以上是关于在 wcf 客户端 app.config 错误(自主机)中找不到端点元素的主要内容,如果未能解决你的问题,请参考以下文章

.NET - 部署 WCF 客户端,没有 app.config

WCF 何时使用 app.config 或 web.config?

在 App.config 中设置 WCF ClientCredentials

从自定义源(非标准 XML)加载 WCF 配置(用于服务器 + 客户端)

WCF 配置 - 将其从 app.config 中拆分出来

使用 App.Config 在 Windows 服务中的 WCF 命名管道