C# SOAP Web服务时出现InvalidOperationException-但在开发人员计算机上工作

C# SOAP Web服务时出现InvalidOperationException-但在开发人员计算机上工作,c#,web-services,soap,C#,Web Services,Soap,我有一个webservice类,它继承自SoapHttpClientProtocol [WebServiceBinding(Name = "gp_ws_mySoap", Namespace = "https://www.xxx/yyy/")] internal class WebserviceNestle : SoapHttpClientProtocol { public WebserviceNestle(string sUrl) : base() { Url =

我有一个webservice类,它继承自
SoapHttpClientProtocol

[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调用可以工作,但是在生产中,我得到异常“
系统。InvalidOperationException
:命名空间中名为“”的XML元素已存在于当前作用域中:

异常的堆栈跟踪是:

System.InvalidOperationException:模具 方法 卡恩·尼希特·弗莱克蒂耶特·沃登。-->System.InvalidOperationException: Fehler beim Reflektieren von''。--> System.InvalidOperationException:Das XML属性“”im命名空间 “我是阿克图伦·贝里希吗 沃汉登。Verwenden Sie XML属性,嗯,是Anden XML名称 order-名称空间für das元素anzugeben。 bei System.Xml.Serialization.XmlReflectionImporter.AddUniqueAccessor(INameScope 作用域,访问器(访问器) bei System.Xml.Serialization.XmlReflectionImporter.AddUniqueAccessor(MemberMapping 成员,INameScope元素,INameScope属性,布尔值 i顺序) bei System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers,字符串ns,布尔hasWrapperElement,布尔 rpc,布尔openModel,递归限制器)-Ende der 国际银行 bei System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(XmlReflectionMember[] xmlReflectionMembers,字符串ns,布尔hasWrapperElement,布尔 rpc,布尔openModel,递归限制器)bei System.Xml.Serialization.XmlReflectionImporter.ImportMembersMapping(字符串 elementName,字符串ns,XmlReflectionMember[]成员,布尔值 hasWrapperElement、布尔rpc、布尔openModel、XmlMappingAccess 访问权限) bei System.Web.Services.Protocols.SoapReflector.ImportMembersMapping(XmlReflectionImporter xmlImporter,SoapReflectionImporter,soapImporter,布尔值 serviceDefaultIsEncoded、布尔rpc、SoapBindingUse、, SoapParameterStyle参数样式,字符串元素名称,字符串 elementNamespace,布尔nsIsDefault,XmlReflectionMember[]成员, 布尔验证、布尔openModel、字符串键、布尔写访问) bei System.Web.Services.Protocols.SoapReflector.ReflectMethod(LogicalMethodInfo methodInfo、布尔客户端、XmlReflectionImporter、xmlImporter、, SoapReflectionImporter(soapImporter,字符串默认值)


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

所以,如果您的一个属性必须包含一个自由字符串值,并且不是XML编码的,该怎么办。如果它包含与XMLBuilder引用属性值相同的引号字符,那么您可能会收到类似XML注入的内容

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

如果使用XML编码的值,则会收到格式良好的XML(如果定义了“and”实体或它们的代码)

尝试使用分析服务响应。

我发现问题:


我用了Confuser()为了保护应用程序,这导致了SoapHttpClientProtocol父类构造函数中的反射错误。

我很难读取堆栈跟踪,请将您的机器语言更改为英语,现在是德语。在这两种情况下,您是否有办法捕获包含实际XML内容的soap信封?您可能会感兴趣查看开发和生产的区别。谢谢。问号也在stacktrace中?堆栈跟踪看起来是“无法反映方法-使用XML属性为元素指定另一个XML名称或命名空间”。它与传递给方法进行反射的XML文件相关,如有必要,显示XML内容(也请为不懂德语的人翻译堆栈跟踪)。捕获此异常后,您可能希望检查InnerException属性,以找出实际问题所在。。