- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 WCF 中有两个单独的消息协定:
[MessageContract(WrapperName = "GetFooRequest", WrapperNamespace = "http://whatever.services.schema")]
public class GetFooRequest
{
[MessageHeader]
public int ResponseType { get; set; }
[MessageBodyMember(Order = 1)]
public string FirstName { get; set; }
[MessageBodyMember(Order = 1)]
public string LastName { get; set; }
}
[MessageContract(WrapperName = "GetBarRequest", WrapperNamespace = "http://whatever.services.schema")]
public class GetBarRequest
{
[MessageHeader]
public int ResponseType { get; set; }
[MessageBodyMember(Order = 1)]
public string FirstName { get; set; }
[MessageBodyMember(Order = 1)]
public string LastName { get; set; }
}
这工作正常,但是一旦我更改 GetBarRequest 上的 MessageHeader 的类型,该服务就不再工作:
[MessageHeader]
public string ResponseType { get; set; }
现在我在 GetFooRequest 和 GetBarRequest 中都有一个名为 ResponseType 的 MessageHeader,但它们有不同的类型。该服务不再有效。为什么我不能在两个完全不同的消息契约上使用同名/不同类型的 MessageHeader?
我得到的错误非常神秘:
Error: Cannot obtain Metadata from http://localhost:42575/Services/Test/TestService.svc If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: http://localhost:42575/Services/Test/TestService.svc Metadata contains a reference that cannot be resolved: 'http://localhost:42575/Services/Test/TestService.svc'. Content Type application/soap+xml; charset=utf-8 was not supported by service http://localhost:42575/Services/Test/TestService.svc. The client and service bindings may be mismatched. The remote server returned an error: (415) Unsupported Media Type.HTTP GET Error URI: http://localhost:42575/Services/Test/TestService.svc There was an error downloading 'http://localhost:42575/Services/Test/TestService.svc'. The underlying connection was closed: The connection was closed unexpectedly.
最佳答案
消息协定在 wsdl 上显示为原始类型,因此 GetBarRequest
和 GetFooRequest
如下所示
WCF不按名称和类型验证schema,只验证名称,所以类型改成名称不变,出现如下错误
The ** operation references a message element [http://tempuri.org/:ResponseType] that has already been exported from the ** operation. You can change the name of one of the operations by changing the method name or using the Name property of OperationContractAttribute. Alternatively, you can control the element name in greater detail using the MessageContract programming model.
[MessageHeader(Name = "TextResponseType")]
public string ResponseType { get; set; } - Name property resolve the issue
关于c# - WCF 中的 MessageHeader 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11674829/
我想知道在服务器端显示所有 MessageHeaders 的最佳方式是什么。实际上我知道的唯一方法如下: OperationContext.Current.IncomingMessageHeaders
我有这段代码,由于某种原因没有写名称或命名空间或属性 public class MultiSpeakHeader : MessageHeader { protected override vo
我有一些服务,其中一项使用 Grails 2.4.2 (Spring 4.0.5) 实现,一些服务作为 Spring Web (Spring 4.0.5) 实现,一项使用 Spring Boot 1.
我有一个存储在“字符串”变量中的自定义 header ,我需要用“字符串”类型变量中的 header 替换来 self 的 WCF 客户端的传出 SOAP 请求的 header 。根据研究,我发现实现
我在 WCF 中有两个单独的消息协定: [MessageContract(WrapperName = "GetFooRequest", WrapperNamespace = "http://whate
我不明白什么时候应该放 [MessageHeader] 而不是 [MessageBodyMember]? 我有read它用于符合某些协议(protocol)(如 Soap),但它最终会改变什么? 最佳
我实现了 Message 接口(interface),以包含一些与服务器端 HeaderValueRouter 一起使用的 header 。 在一个虚拟机内,这是可行的(使用两个端点之间的过滤器进行测
我正在尝试在 WCF 中使用这个简单的代码: 客户端: ServiceContractClient proxy = new ServiceContractClient(); using (Operat
我正在阅读有关 MessageContract 和 MessageHeader 的内容,并试图了解在 MessageHeader 中发送一些信息的用例,而不是将其仅用作函数参数? 最佳答案 消息契约和
如果我使用像下面这样的代码将消息 header 添加到我的 OperationContext 中,所有 future 的传出消息是否都包含从我的应用程序的相同“运行”定义的任何新 ClientProx
我正在使用以下代码添加 WCF 自定义 header MessageHeader header = MessageHeader.CreateHeader("Key", "ns", "Value");
我的处理程序中有以下行: headers.put(EMPTY_FILE, true); 原因是: 2019-11-26 13:36:29.420 ERROR 2216 --- [sub-subscri
我正在使用 openpop.net 阅读电子邮件并在检查主题后打印它们。但是我停留在第一步,MessageHeader、RfcMailAddress 和 File 显示为错误 “找不到类型或 name
我有一个使用自定义 UserNamePasswordValidator 进行保护的 WCF。我需要访问通常在以下位置可用的内容: OperationContext.Current.RequestCon
下面的代码是在 Spring Integration 2.2.6 中设置 MessageHeader 的 'NEW' 键。 public Message getFlow() { return
如何编写单元测试,因为它包括内部调用其他方法。 public class MyService implements UserDestinationResolver { @Override
我有一个向客户端公开的 JAX-WS Webservice。当客户端调用它时,messageheader 将填充UserId。当请求来自客户端时,我尝试使用实用程序类在线程本地中设置此值,并在将响应发
我是一名优秀的程序员,十分优秀!