我拥有一个WCF网络服务。 在接到请求时,我试图进行一些伐木,在收割后活动中执行电文和伐木。
出于某种原因,每当我向网上服务机构发出使用WCF 试验Client的请求。 一切都得 fine。 该信息被封不动,请求按正常程序处理。
但是,当我向网络服务机构发出使用SOAPUI作为客户的请求时,制作请求书的复印件使该机构只能显示<代码><人与人”......溪流......</人与人>,并且后来为了验证而未能装上XML文件。
我猜测,世界渔委会提出的一项请求。 收到了一个缓冲信息机构,并收到了SOAPUI作为主流机构提出的请求? 如何做到这一点?
我是否可以写一些能够安全地复制这两种版本的法典? 我尚未说明如何安全地复制一流版本,因为“创造机会”显然没有做到这一点。
或者,我是否能够召集世界文化论坛,以便永远建立一个缓冲信息机构,从来不是一种流子?
这里是我用来记录和复制请求通知的守则:
object IDispatchMessageInspector.AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanceContext)
{
try
{
MessageBuffer buffer = request.CreateBufferedCopy(Int32.MaxValue);
request = buffer.CreateMessage();
Message copy = buffer.CreateMessage();
LogRequest(copy);
ValidateMessage(ref request);
}
catch (Exception e)
{
throw new FaultException<>()...
}
return null;
}
请求函文的复印件在ValidateMessage(ValidateMessage)方法中未能装入XML文件,如果该信息来自一个流体的SOAPUI。 如果来自世界渔委会的《禁试》文件,它就能够装上XML文件。 拥有一个缓冲机构。
void validateMessage(ref System.ServiceModel.Channels.Message message)
{
XmlDocument bodyDoc = new XmlDocument();
//This load throws exception if request came from SOAPUI with streamed body...
bodyDoc.Load(message.GetReaderAtBodyContents());
...
}
The exception thrown by the Load() method is:
System.InvalidOperationException {"The specified node cannot be inserted as the valid child of this node, because the specified node is the wrong type."}
at System.Xml.XmlDocument.AppendChildForLoad(XmlNode newChild, XmlDocument doc) at System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) at System.Xml.XmlDocument.Load(XmlReader reader) at ...