веб-сервис asp.net, Ошибка при создании XML-документа - PullRequest
0 голосов
/ 12 января 2012

Я создал веб-сервис asp.net и пытаюсь протестировать его с помощью моего клиента. Веб-метод, который я сейчас тестирую, возвращает пользовательский объект с именем GetAllTicketsSinceLastPullDateResult, который содержит один ArrayList пользовательских объектов clsTrip и пользовательский объект FaultResponse. Вот как я использую свой клиент:

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?

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 12 января 2012

Хорошо, наконец-то я получил его на работу, в итоге я поставил следующую строку:

[XmlInclude(typeof(clsTicket))]

Между [WebMethod] и определением моего метода.Пока все хорошо.

2 голосов
/ 12 января 2012

Не думаю, что вам нужен «новый» результат:

ServiceReference1.GetAllTicketsSinceLastPullDateResult result;
result = myClient.getAllTicketsSinceLastPullDate(myUser);

Кроме того, откуда вы знаете, что ошибка не на сервере? Можете ли вы вызвать функцию через веб-браузер?

1 голос
/ 12 января 2012

Обновили ли вы свой сервис с момента добавления ссылки на ваш проект?Если вы используете функцию «Добавить веб-ссылку» в Visual Studio и обновляете службу, часто возникает вероятность конфигурации или параметра, что может привести к ошибкам SOAP.

Попробуйте щелкнуть правой кнопкой мыши соответствующий веб-сервис в Visual Studio и выбрать опцию «Обновить».Перекомпилируйте приложение и посмотрите, решит ли это вашу проблему.

...