首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InvalidOperationException时SOAP但在开发机器上工作

InvalidOperationException时SOAP但在开发机器上工作
EN

Stack Overflow用户
提问于 2016-10-26 10:55:08
回答 2查看 1K关注 0票数 1

我有一个从SoapHttpClientProtocol继承的webservice类。

代码语言:javascript
复制
[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)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-08 12:27:19

我发现了问题:

我使用混淆器(https://yck1509.github.io/ConfuserEx/)来保护应用程序,这会导致SoapHttpClientProtocol父类构造函数中的反射错误。

票数 2
EN

Stack Overflow用户

发布于 2016-11-04 22:55:44

如果您不使用对象XML序列化程序,我的猜测是可行的。

那么,如果您的一个属性必须包含一个空闲的字符串值,并且不是XML编码的,那该怎么办?如果它包含与XML生成器使用的“属性值”相同的引号,那么您可以收到类似于XML注入的内容。

例如,您必须传递一个字符串,这就是我所说的“真正的问题”。如果不对字符串进行XML编码,您将得到类似的内容,这意味着属性值在字符之前关闭,从a到右侧的所有内容都成为XML指令,我不期望普通的XML解析器能够理解这些指令。

如果使用XML编码的值,则会收到(如果定义了“和”实体或它们的代码不是定义的话),这是一个格式良好的XML。

尝试使用SoapUI (他们有一个免费的社区版)来分析服务响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40260410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档