动态更改名称空间SoapTypeAttribute

时间:2011-09-07 21:16:03

标签: c# soap wsdl

我的服务参考视觉工作室有问题。

我有一个客户端给我一个WSDL文件来处理php。 我在我的项目中引用了他的ClassLibrary wsdl的服务。 以下是生成的代理代码的一部分

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")] [System.SerializableAttribute()] [System.Diagnostics.DebuggerStepThroughAttribute()] [System.ComponentModel.DesignerCategoryAttribute("code")] [System.Xml.Serialization.SoapTypeAttribute(Namespace="http://127.0.0.1:88/webservices/wsdl")] public partial class loginReturn : object, System.ComponentModel.INotifyPropertyChanged {

我的问题是wsdl可以在另一台服务器上安装到第二个客户端。 因此,wsdl的地址在我的app.config

中设置

我通过更改遇到的服务器端口错误进行了测试 我的问题是SoapTypeAttribute

的命名空间

[System.Xml.Serialization.SoapTypeAttribute(Namespace="http://127.0.0.1:88/webservices/wsdl")]

如何根据服务器地址更改此属性值,因为我有此错误

对操作'getlogin'的回复消息正文进行反序列化时出错..

这个方法

loginReturn t =  service.Getlogin("username", "pwd");

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

该属性是由wsdl文件中的"127.0.0.1:82/moodle/wspp/wsdl"名称空间引起的。这可以是任何值,只要它是唯一的,通常使用URL。只要这是两台服务器上的SAME,就应该在Web服务的代理类上设置URL。 e.g。

MyMroxyClass.Url = ConfigurationManager.AppSettings["MyServiceURL"]

答案 1 :(得分:0)

我解决了这个问题。

问题是服务器端,而不是客户端。我的客户端在每台服务器上重新生成了wsdl,因此更改了wsdl的签名