SoapException в веб-сервисе
У меня есть вкладка управления. 1-я вкладка имеет сетку, в одном из столбцов есть флажок. Пользователь выбирает его и нажимает "Далее" под вкладкой, затем переходит на следующую вкладку.
Я использую веб-ссылку, чтобы получить значения. Когда страница загружается в первый раз, ссылка работает и значения могут быть достигнуты, сетка становится связанной.
Но когда я нажимаю "Далее", происходит обратная передача и она снова пытается связать сетку, тогда ссылка дает "SoapExpection". Вот подробности:
-> Я выбираю строку, затем нажимаю "Далее":
protected void gridView_HtmlRowCreated(object sender, ASPxGridViewTableRowEventArgs e)
{
if (e.RowType == GridViewRowType.Data)
{
//bla bla bla
//I get the error here:
ClassEntity tmpObjects = webService.callObjects(rowID);
//bla bla bla
{
{
-> И функция с именем callObjects(int ID) (в Reference.cs)
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("...", RequestNamespace="...", ResponseNamespace="...", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public ClassEntity callObjects(int ID) {
object[] results = this.Invoke("callObjects", new object[] {
ID});
return ((ClassEntity)(results[0]));
И точная ошибка: "SoapException: серверу не удалось обработать запрос. Ссылка на объект не установлена на экземпляр объекта"
Есть идеи, предложения или... решения? Заранее спасибо.
1 ответ
Я использовал имя пользователя и пароль для доступа к веб-ссылке в классе, который наследуется от System.Web.Services.Protocols.SoapHeader.
Я определял имя пользователя и пароль в Page_Load, но, похоже, он очищал эти значения после того, как я нажал "Далее". Таким образом, я сделал те же изменения в событии gridView_HtmlRowCreated, и это сработало.
Надеюсь, это поможет любому, как я.