代码之家  ›  专栏  ›  技术社区  ›  stiank81

来自Silverlight类库的WCF服务引用

  •  2
  • stiank81  · 技术社区  · 15 年前

    我有一个Silverlight应用程序通过WCF服务与服务器端通信。最初,我在主要的Silverlight应用程序中拥有所有东西,但现在我想将我们的一些类考虑到一个单独的Silverlight类库项目中。但这给了我一些奇怪的问题…

    我想将进行WCF通信的类分解为一个单独的项目。所以我:

    • 创建了一个新项目;Silverlight类库
    • 已将类从我的Silverlight应用程序移动到我的Silverlight类库
    • 删除了应用程序中的服务引用,因为我不再从应用程序调用它。
    • 从类库项目中添加了服务引用。

    现在编译很好,我在类库中得到了服务的智能感知,所以它看起来很好。我还更新了服务,并在类库中得到了更新。 但在运行应用程序时,在执行服务调用时失败,并出现以下错误:

    用户代码未处理InvalidOperationException

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

    似乎找不到服务,但为什么?我认为从Silverlight类库获取服务引用应该没有问题,因为它允许我添加一个服务引用?

    1 回复  |  直到 14 年前
        1
  •  2
  •   marc_s    15 年前

    它找不到任何服务配置-WCF服务的配置在哪里?默认情况下,客户端应用程序(exe)将具有app.config,其中包含要连接到的服务终结点。

    此外,默认情况下,类库(DLL)没有自己的配置,而是依赖其宿主应用程序为它们提供配置。

    总之,您可能缺少客户端端点的配置。最有可能的是,它在类库项目中创建为app.config,但实际上没有被使用-您必须移动 <system.serviceModel> 到主应用的配置部分(我不精通Silverlight,但你会知道把它放在哪里)。

    马克