问题标签 [messagecontract]

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 投票
1 回答
1472 浏览

c# - 如何添加 ClientCertifcates,客户端身份验证方案“匿名”禁止 HTTP 请求

从自动生成的 Web 服务代理类调用方法时出现以下错误:

System.ServiceModel.Security.MessageSecurityException 未处理
HResult=-2146233087 Message=HTTP 请求被客户端身份验证方案“匿名”禁止。源=mscorlib
ThreadStart_Context(Object state) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) at System。 Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException: System.Net.WebException HResult=-2146233079 Message=远程服务器返回错误:(403) 禁止。Source=System StackTrace:位于 System.ServiceModel.Channels.HttpChannelFactory'1 的 System.Net.HttpWebRequest.GetResponse()。

这是如何称呼它

我如何添加此 Web 服务参考:

在 MS Visual Studio 2013 社区中,Project > Add > Service Reference

服务参考窗口

服务参考高级设置窗口

Obs:这些是默认配置。这是一个市政网络服务,用于发送所提供的运输或物流服务的电子发票。

我读过添加证书所必需的地方,例如:

但这是不可能的,因为:

  1. 这个自动生成的 web 服务类不会继承自具有这种方法的ClientCertificates.Add()HttpWebClientProtocol,例如类。
  2. LoteNFeSoapClient()类已经从一个接口继承,该接口使消息契约匹配请求和响应之间的值。
  3. 在 C# 中,一个类不能有多个基类。

那么,可以做些什么呢?提前致谢。

0 投票
1 回答
162 浏览

c# - 如何使用 WCF 序列化派生类型

我正在开发一个 WebService 客户端,并且在派生类型序列化方面遇到了一些问题。

请求类

ServiceObject 类和派生类型

结果 XML

我必须更改什么才能正确序列化派生类?

提前致谢。

0 投票
1 回答
57 浏览

wcf - 客户端中的 WCF 操作需要与服务器中定义的参数集不同的参数集

我是 WCF 的新手。我有一个示例 WCF 服务器和一个使用该服务的客户端。我有一个名为 getEmployer4 的 OperationContract,它接受一个 EmployerRequestBO 并返回一个 EmployerResponseBO,这两种类型都被装饰为 MessageContract

我的 EmployerRequestBO 看起来像:

问题是,当我尝试使用以下代码调用客户端中的操作时:

getEmployer4 不需要 EmployerRequestBO 参数,错误如下所示

点击查看附件

没有给出与“EmployerClient.GetEmployer4(string, ref int, out string)”的所需形式参数“CompanyRegistrationID”相对应的参数。

谁能解释为什么它要求原始类型而不是 MessageContract 类型?谢谢!

0 投票
1 回答
1381 浏览

c# - 将命名空间添加到 MessageContract (WCF)

我正在尝试创建要发送到 SAP 端点的 SOAP 消息,但是,我无法正确设置命名空间。我已经尝试了几天,并尝试了很多我在网上找到的建议,但似乎没有一个有效。我希望你们中的一些人可以帮助我。

这是我拥有的 C# 代码示例:

这导致 SOAP 主体看起来像这样:

我想要实现的是将另一个命名空间添加到根并让子元素使用该命名空间。最后,我正在寻找与此类似的结果(mySecondNamespace):

我努力了:

  • 将 XmlRoot 添加到 MessageContract
  • 将 XmlType 添加到 MessageContract
  • 在将新命名空间添加到命名空间集合的 getter/setter 上使用“XmlNamespaceDeclarations”属性
  • 在 OperationContract 上设置命名空间

但似乎没有任何效果。将命名空间添加到 XmlElement 似乎有效果,但在这种情况下,命名空间不在根元素上,也不会传播到底层元素。有任何想法吗?

0 投票
0 回答
188 浏览

c# - 我可以发送没有 SOAP 信封和正文标签的 SOAP 响应吗,只是一个普通 XML

我从我的 WCF 服务将响应作为 XML 文档发送。

但是当使用 SOAP UI 进行测试时,我明白了。

我只想要我从 WCF 服务发送的响应,而没有 SOAP 自动生成的标签。

0 投票
1 回答
704 浏览

c# - 具有复杂类型和命名空间的 WCF MessageBodyMember

我必须为给定的客户端实现 WCF 服务,因此命名空间和合同不是由我定义的。问题是,当我将复杂类型用作 aMessageBodyMember时,在服务器端,给定成员在我的服务器端设置为 null。

这是示例请求:

正如你所看到的,它userID是一个复杂类型,它的成员已经定义了命名空间。我说的是 MessageBodyMember。

这是我的服务接口定义和实现:

这是SyncOrderRelationshipReqand的定义UserID

长话短说,我需要 MessageBodyMember 的内部成员设置自己的命名空间,以便我可以读取这些成员。

0 投票
0 回答
681 浏览

c# - (WCF) elementFormDefault="qualified" 和 attributeFormDefault="qualified" 可能

情况:我需要构建一个基于 XSD 的 web 服务。

当 XSD 说:

或者

我在 Stackoverflow 或 Google 上找不到任何明确的答案。是其中一种可能还是两者兼而有之?

如果可能,是否可以与 MessageContracts 和 DataContracts 结合使用?

基于Microsoft看起来不可能:

attributeFormDefault 忽略。

elementFormDefault 必须是合格的。所有元素都必须符合 DataContractSerializer 支持的架构。这可以通过将 xs:schema/@elementFormDefault 设置为“qualified”或通过在每个单独的元素声明上将 xs:element/@form 设置为“qualified”来实现。

我还发现这个不喜欢它:

通常,由于单个文档中混合使用全局和本地元素可能会产生潜在的混淆和奇怪的语法,以及默认命名空间可能出现的问题,建议坚持使用 elementFormDefault=”qualified”。它可能更冗长,但哪个命名空间/模式拥有给定元素也更清楚。如果 XML 文档作者想要减少前缀的数量,他们总是可以依赖“默认命名空间”。此外,由于使用默认命名空间时可能发生冲突,attributeFormDefault 应该是不合格的。

0 投票
2 回答
395 浏览

c# - WCF MessageContract 属性未显示在 WSDL 中

我定义了 aMessageContract以便Stream通过 WCF 传输 a 以及其他一些数据:

WSDL:

但是标头数据类的属性没有显示在 WSDL 文件中。我如何让他们出现?

0 投票
0 回答
48 浏览

c# - 如何在 REST 中为 GET 方法定义 uri 地址

我有这段代码,一切正常

我将代码更改为格式:

在哪里

但是有一个错误。没有办法使用MessageContractwith UriTemplate,但是如何使用请求参数指定服务地址?

0 投票
2 回答
558 浏览

c# - 更改 XML 标记前缀 SOAP

我正在尝试创建带有前缀的 SOAP 消息。但是,我无法正确设置命名空间。我已经尝试了几天,并尝试了很多我在网上找到的建议,但似乎没有一个有效。我希望你们中的一些人可以帮助我。我得到的是

&我真正需要的是

& 我的按摩联系方式是

请帮我为我的 XML 元素添加前缀。谢谢