asp.net web服务,错误生成XML文档
我已经创建了一个asp.net web服务,并且正在尝试使用我的客户端进行测试。我正在测试的web方法返回一个名为GetAllTicketsSinceLastPullDateResult的自定义对象,它包含一个自定义clsTrip对象的ArrayList和一个名为FaultResponse的自定义对象。这是我如何使用我的客户:asp.net web服务,错误生成XML文档
ServiceReference1.ServiceSoapClient myClient = new ServiceReference1.ServiceSoapClient();
ServiceReference1.GetAllTicketsSinceLastPullDateResult result = new ServiceReference1.GetAllTicketsSinceLastPullDateResult();
result = myClient.getAllTicketsSinceLastPullDate(myUser);
,但我得到了以下错误:
System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: The type clsTicket was not expected. Use the XmlInclude or SoapInclude attribute to specify types that are not known statically.
我谷歌错误,最让我找到答案的有序列化派生类的事情。但是我的clsTicket类不是派生类。什么可能导致这个错误?我如何使用XmlInclude或SoapInclude?
在此先感谢!
好吧,我终于得到它的工作,我最终把下面一行:
[XmlInclude(typeof(clsTicket))]
之间[WebMethod]
和我的方法的定义。到现在为止还挺好。
自从最初为您的项目添加引用后,您是否更新过服务?如果您使用Visual Studio的“添加Web引用”功能并更新服务,则通常会有配置或参数机会,从而可能会生成SOAP错误。
尝试通过visual studio右键点击有问题的Web服务并选择“更新”选项。重新编译应用程序,看看是否可以解决您的问题。
我不认为你需要“新”的结果:
ServiceReference1.GetAllTicketsSinceLastPullDateResult result;
result = myClient.getAllTicketsSinceLastPullDate(myUser);
而且,你怎么知道错误是不是在服务器上? 你可以用网页浏览器调用这个功能吗?
我通过我的网络浏览器试过这个,我实际上得到了同样的错误信息。所以它可能是服务器。仍然不知道如何处理这个。 – PaulG 2012-01-12 15:46:46
可能吗?当然,这是服务器代码! – 2012-01-12 15:54:36
感谢您的回复。是的,我已经尝试过,无济于事。 – PaulG 2012-01-12 15:21:23