2011-07-13 3 views
0

У меня есть элемент управления вкладкой. Первая вкладка имеет сетку, один из столбцов - флажок. Пользователь выбирает его и нажимает «Далее» под вкладкой, затем переходит к следующей вкладке.SoapException В веб-службе

Я использую веб-ссылку для получения значений. Когда страница загружается в первый раз, эта ссылка работает и значения могут быть достигнуты, сетка получает привязку.

Но когда я нажимаю «Далее», происходит обратная передача, и она пытается связать сетку снова, тогда ссылка дает «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 (интермедиат 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, и это сработало.

Надеюсь, что это поможет мне.

 Смежные вопросы

  • Нет связанных вопросов^_^