【问题标题】:Cannot instantiate service client无法实例化服务客户端
【发布时间】:2012-07-31 15:51:47
【问题描述】:

我有一个调用 Web 服务 AddressValidationService 的 wpf C# 应用程序。我知道它曾经可以工作(在我开始从事该项目之前),但现在不行了。异常发生在这里:

var addrSvc = new AddressValidationServiceReference.AddressValidationServiceClient();

例外是:

在 ServiceModel 客户端配置部分中找不到引用合同“AddressValidationServiceReference.IAddressValidationService”的默认端点元素。这可能是因为找不到您的应用程序的配置文件,或者因为在客户端元素中找不到与此协定匹配的端点元素。

这是来自我的 app.config:

    <client>
        <endpoint address="http://rdbval/EASTServices/AddressValidationService.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IPolicyRetriever"
            contract="AddressValidationServiceReference.IPolicyRetriever"
            name="BasicHttpBinding_IPolicyRetriever" />
        <endpoint address="http://rdbval/EASTServices/AddressValidationService.svc"
            binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IAddressValidationService"
            contract="AddressValidationServiceReference.IAddressValidationService"
            name="BasicHttpBinding_IAddressValidationService" />
    </client>

也许有人能说出哪里出了问题?谢谢。

【问题讨论】:

  • 我不确定,但不是 web.config(不是 app.config)用于此吗?
  • 但我的客户端应用程序不是 Web 应用程序。

标签: c# wpf web-services


【解决方案1】:

可能是愚蠢的猜测,但无论如何:您确定您的配置文件来自您的客户端应用程序吗? =)。例如,如果您不确定,请尝试从中读取一些 AppSetting 以确保您使用的是正确的。 配置本身看起来不错。

【讨论】:

  • 感谢您的回答。但是,是的,它是我项目中的 app.config。也许我应该把它放到主应用程序项目中? (解决方案有多个项目)
  • 当然!您应该将其放置在(客户端应用程序的)宿主进程项目中
  • 是的!它起作用了,所以你的猜测是完全正确的。谢谢。 Спасибо, Алекс!
【解决方案2】:

您需要在ServiceModel client 项目的.config 中为IAddressValidationService 插入或更新endpoints

【讨论】:

    猜你喜欢
    • 2011-10-01
    • 2012-09-17
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多