C# WCF错误:无消息版本不支持Soap头
我正在尝试为WCF中的文件传输添加流。 我的WCF服务有两个端点—BasicHttpBinding和WebHttpBinding 我得到一个错误-执行文件传输的方法上的None消息版本不支持Soap头。 只要我在web.config中注释我的WebHttpBinding端点并只使用我的BasicHttpBinding,错误就会消失 我已经搜索了很多关于这个问题的帖子,但是找不到原因和解决这个问题的方法 如果我对上传方法进行评论,它工作正常,没有错误。 这是我的配置C# WCF错误:无消息版本不支持Soap头,c#,web-services,wcf,soap,C#,Web Services,Wcf,Soap,我正在尝试为WCF中的文件传输添加流。 我的WCF服务有两个端点—BasicHttpBinding和WebHttpBinding 我得到一个错误-执行文件传输的方法上的None消息版本不支持Soap头。 只要我在web.config中注释我的WebHttpBinding端点并只使用我的BasicHttpBinding,错误就会消失 我已经搜索了很多关于这个问题的帖子,但是找不到原因和解决这个问题的方法 如果我对上传方法进行评论,它工作正常,没有错误。 这是我的配置 <endpoint ad
<endpoint address="basic"
binding="basicHttpBinding"
bindingConfiguration="myBasicBinding"
contract="IService" />
<endpoint address="web"
binding="webHttpBinding"
behaviorConfiguration="webBehavior"
bindingConfiguration="webbinding"
contract="IService" />
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
据我所知,webHttpBinding使用MessageVersion。None和None是不使用SOAP或WS-Addressing的消息版本,MessageVersion。None支持使用“普通旧XML”(POX)样式的消息传递。 在这种风格中,您不需要处理SOAP信封和SOAP头。。
而且,由于您在消息契约中使用了MessageHeader,如果您不在web.config中注释WebHttpBinding端点,您将得到错误消息 请发布您的配置,您可能必须使用customerbinding并使用较低版本的SOAPi I未看到您的绑定正在终止服务端有什么问题?请检查您的配置。此服务已在工作并正在使用。您认为这可能是个问题吗?
<binding name="myBasicBinding"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647"
closeTimeout="01:50:00"
openTimeout="01:50:00"
sendTimeout="01:50:00"
receiveTimeout="01:50:00"
transferMode="Streamed"
messageEncoding="Mtom" >
<binding name="webbinding" transferMode="StreamedRequest">
<service name="EmployeeAPI.Service" behaviorConfiguration="MyServiceTypeBehaviors">
[OperationBehavior]
public void UploadFile_WorksFineForlocalDrive(FileUploadMessage request)
{ ... }
[MessageContract]
public class FileUploadMessage
{
[MessageHeader(MustUnderstand = true)]
public FileMetaData Metadata;
[MessageBodyMember(Order = 1)]
public Stream FileByteStream;
}