我有一个从SoapHttpClientProtocol继承的webservice类。
[WebServiceBinding(Name = "gp_ws_mySoap", Namespace = "https://www.xxx/yyy/")]
internal class WebserviceNestle : SoapHttpClientProtocol
{
public WebserviceNestle(string sUrl) : base()
{
Url = sUrl;
}
[SoapDocumentMethod("https://www.xxx/yyy/test",
RequestNamespace = "https://www.xxx/yyy/",
ResponseNamespace = "https://www.xxx/yyy/",
Use = SoapBindingUse.Literal,
ParameterStyle = SoapParameterStyle.Wrapped)]
public XmlNode test(string a, int b)
{
var results = Invoke("test", new object[] {
a,
b
});
return (XmlNode)results[0];
}
}在我的开发机器上,webservice调用可以工作,但是在生产中,我得到了异常"System.InvalidOperationException:名称空间中名为'‘from命名空间’的XML元素“,这个名称空间已经存在于当前范围中:
异常的堆栈跟踪是:
?????????????????????????????????????????.?????????????????????????????????????????-Methode,System.InvalidOperationException,kann,kann,System.InvalidOperationException:死了,kann,kann,Verwenden Sie XML-Attribute,um einen anderen XML-Namen oder für das Element anzugeben.bei System.Xml.Serialization.XmlReflectionImporter.AddUniqueAccessor(INameScope作用域,访问器) bei System.Xml.Serialization.XmlReflectionImporter.AddUniqueAccessor(MemberMapping成员,INameScope元素,INameScope属性,布尔isSequence) bei System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers,字符串ns,布尔hasWrapperElement,布尔rpc,布尔openModel,RecursionLimiter限幅器)- Ende der internenüberwachung- bei System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers,字符串ns,布尔hasWrapperElement,布尔rpc,布尔openModel,SoapReflectionImporter soapImporter,String defaultNs)
发布于 2016-11-08 12:27:19
我发现了问题:
我使用混淆器(https://yck1509.github.io/ConfuserEx/)来保护应用程序,这会导致SoapHttpClientProtocol父类构造函数中的反射错误。
发布于 2016-11-04 22:55:44
如果您不使用对象XML序列化程序,我的猜测是可行的。
那么,如果您的一个属性必须包含一个空闲的字符串值,并且不是XML编码的,那该怎么办?如果它包含与XML生成器使用的“属性值”相同的引号,那么您可以收到类似于XML注入的内容。
例如,您必须传递一个字符串,这就是我所说的“真正的问题”。如果不对字符串进行XML编码,您将得到类似的内容,这意味着属性值在字符之前关闭,从a到右侧的所有内容都成为XML指令,我不期望普通的XML解析器能够理解这些指令。
如果使用XML编码的值,则会收到(如果定义了“和”实体或它们的代码不是定义的话),这是一个格式良好的XML。
尝试使用SoapUI (他们有一个免费的社区版)来分析服务响应。
https://stackoverflow.com/questions/40260410
复制相似问题