问题标签 [servicecontract]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
12543 浏览

wcf - 影响客户端的 WCF 合同更改

我很好奇是否有人可以概述服务器端哪些类型的 WCF 合同(接口)更改会破坏客户端尝试发送消息,以及为什么。我相信 WCF 可以处理某些差异,但我不确定您可以安全地更改哪些内容,以及您不能安全更改哪些内容。

  • 从 OperationContract 添加/删除参数?
  • 添加/删除/更改 DataContract 的序列化属性?
  • 从 ServiceContract 添加/删除 OperationContracts?

有朋友在这里问过类似的问题:

向 WCF ServiceContract 添加方法会破坏现有客户端吗?

编辑:正如 John Saunders 所指出的,更改合同通常不是一个好主意,但有些内置的东西允许一些版本容差(ExtensionDataObject 等?)。我只想知道版本容差有多灵活。

0 投票
2 回答
5659 浏览

wcf - WCF 测试客户端错误中不支持此操作

实际上我在 IIS 主机中实现了 WCF 服务

使用 WCF 测试客户端工具出现此错误:“WCF 测试客户端不支持此操作”。

http://desbiz:49615/GestionProvision.svc

在 IExplorer 中使用 wsdl 一切正常。

http://desbiz:49615/GestionProvision.svc?wsdl

合同是:

我可以知道原因吗?

提前致谢。

问候,

0 投票
1 回答
539 浏览

.net - WCF - 分离服务合同和部分派生?

因此,我将我的 WCF 服务合同分离为离散合同以供重复使用。

我曾经拥有包含 3 个函数的 IOneServiceContract:Function1、Function2、Function3。

我已将此服务合同分成两个独立的服务合同:IServiceContract1 和 IServiceContract2。IServiceContract1 包含 Function1,IServiceContract2 包含 Function2 和 Function3。这将允许我重新使用离散的 IServiceContract1 和/或 IServiceContract2 来构建代表公共服务合同的新服务合同。

知道这一点......希望我没有搞砸描述,这样你就无法理解其余的......

我有两个服务 IService1 和 IService2。
IService1 实现 IServiceContract1 和 IServiceContract2。这很完美,因为 IService1 需要实现所有功能:Function1、Function2、Function3。

然而,IService2 不需要实现 IServiceContract2 的所有功能,只需实现 Function1。

IService2 有没有办法部分执行合同?我知道这听起来很荒谬。处理这种情况的正确方法是尝试在逻辑上分离 IServiceContract2 以便 IService2 只需要实现它需要的部分吗?

谢谢

0 投票
2 回答
4750 浏览

interface - 如何在单个端点上的 WCF 服务中公开具有多重继承的服务合同接口

我在服务的方法签名中只有简单的数据类型(例如 int、string)。我的服务类实现了单个 ServiceContract 接口,比如 IMathService,而这个接口又继承自其他一些基础接口,比如 IAdderService。我想使用接口合同 IAdderService 将 MathService 公开为单个端点上的服务。然而,一些知道 IMathService 的客户应该能够访问 IMathService 在该单个端点上提供的额外服务,即只需将 IAdderService 类型转换为 IMathService。

服务器端配置:

客户端实现:

客户端配置:

使用上面的代码和配置,我无法将 IAdderService 实例类型转换为 IMathService,它失败了,并且我在客户端获得了 IMathService 的空实例。

我的观察是,如果服务器将 IMathService 暴露给客户端,那么客户端可以安全地类型转换为 IAdderService,反之亦然。但是,如果服务器公开 IAdderService,则类型转换失败。

有什么解决办法吗?还是我做错了。

0 投票
1 回答
3250 浏览

wcf - WCF ServiceContract 和 svcutil 问题

我有一个自动生成的公共接口 bu svcutil:

然后我有 asmx Web 服务继承它并且工作正常。我正在尝试将其转换为 WCF,但是当我使用 ServiceContract 检测服务(在 asmx.cs 代码后面)时:

我还创建了 .svc 文件并在配置文件中添加了 system.serviceModel 设置。目标是将 asmx 服务迁移到 WCF 服务。

我有这个错误:

MyService 类型的服务类既定义了一个ServiceContract,又从MyInterface 类型继承了一个ServiceContract。契约继承只能在接口类型之间使用。如果一个类用 ServiceContractAttribute 标记,它必须是层次结构中唯一具有 ServiceContractAttribute 的类型。

asmx 服务仍然可以正常工作。只有 .svc 给了我问题。我的问题是如何解决这个问题。MyInterface 是一个接口,所以我看不出问题出在哪里以及为什么我得到了错误。

注意我不想更改 MyInterface,因为它是从我的 wsdl 架构中的 svcutil 自动生成的,我不希望手动编辑此接口。整个想法是让服务类型自动从 WSDL 生成,并通过手动编辑来节省我的团队开发工作量。

任何帮助表示赞赏。

0 投票
1 回答
2379 浏览

wcf - 如何在 wcf 中使用 MessageParameterAttribute

我想知道 wcf 中 MessageParameterAttribute 的用途。

在我的功能中:

我不在实现中的任何地方使用 fromCity 或 toCity ,甚至在使用服务时也不使用。那么给它起名字有什么意义呢?

0 投票
2 回答
1731 浏览

c# - 实现多个服务合同的 WCF 类

我有一个类,它实现了两个名为and的TestService服务合同。但我在实施中面临困难。IService1IService2

我的代码如下所示:

我收到一个运行时错误:

ServiceMetadataBehavior的HttpGetEnabled属性设置为true,HttpGetUrl属性是相对地址,但是没有http基地址。提供 http 基地址或将 HttpGetUrl 设置为绝对地址。

我能做些什么呢?我真的需要两个独立的端点吗?

0 投票
2 回答
6010 浏览

c# - WCF 类在同名的不同服务契约中实现两个操作契约

我已经声明了两个服务合同如下:

我有一个实现这两个合同的类。我为两个合同创建了两个端点。但我无法从客户端代码访问服务。当我尝试将服务参考更新为:

元数据包含无法解决的错误.... 没有端点正在监听 ... 等。

我知道你不能有两个OperationContract同名的s,但是是否可以在不同的服务合同中拥有两个同名但签名不同的操作合同?

0 投票
1 回答
1231 浏览

c# - 我可以在调用端点之前找出端点支持哪些 WCF 方法吗?

我有一个 WCF 服务合同的版本控制问题,其中为操作调用的众多端点之一缺少合同中的一种方法。

我的问题是,在尝试调用该命令之前,如何确保该命令在客户端可用?

我试过了:

不幸的是,这是使用调用应用程序的合同,实际上并没有描述端点本身的实现。结果,即使端点未能执行命令,它也会返回 true。

0 投票
1 回答
3123 浏览

c# - 在运行时提供 ServiceKnownType?

我在合同中使用了 100 多个 ServiceKnownType 的 WCF 接口,如下所示:

有没有办法在运行时提供这些 ServiceKnownTypes?
在源代码中添加所有这些 ServiceKnownTypes 不仅容易出错且乏味,而且它使我的程序集以我不喜欢的方式捆绑在一起(我希望能够将这些类型提取到子程序集中以解耦它们,但不能,因为服务需要列出所有已知类型)。