Как обрабатывать CommunicationException при использовании Lists.asmx в SharePoint 2010 - PullRequest
0 голосов
/ 14 августа 2011

Я получаю данные списка элементов с помощью Lists.asmx в SharePoint 2010 (проверка подлинности формы).

Код выглядит следующим образом.

private void GetItems(string listname)
{
    ListsService.ListsSoapClient client = new ListsService.ListsSoapClient();
    appset = new AppSettings();
    client.CookieContainer = appset.CookieSetting;
    client.GetListItemsAsync(listname, null, null, null, "10", null, null);

    client.GetListItemsCompleted += new EventHandler<ListsService.GetListItemsCompletedEventArgs>(client_GetListItemsCompleted);

}

void client_GetListItemsCompleted(object sender, ListsService.GetListItemsCompletedEventArgs e)
{
    listBox1.ItemsSource = from element in e.Result.Descendants(XName.Get("row", "#RowsetSchema"))
                            select new Lists
                            {
                                Title = (string)element.Attribute("ows_LinkTitle")
                            };
}

Когда происходит таймаут проверки подлинности формы,необработанное CommunicationException повышается.Трассировку стека можно найти здесьответ, HttpChannelFactory завод, WebException responseException) на System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.ProcessResponse (HttpWebResponse ответ, WebException responseException) на System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse (IAsyncResult результат) в системе.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelAsyncRequest.doWork (Объект o) в System.Threading.Timer.ring ()

Я не смог обработать CommunicationException, даже если я использую try ~ catch.Поэтому, пожалуйста, дайте мне знать, как обрабатывать CommunicationException.

1 Ответ

0 голосов
/ 14 августа 2011

Вы должны зарегистрироваться для события GetListItemsCompleted перед вызовом GetListItemsAsync.Также, оберните GetListItemsAsync в блок try-catch.

Любая ошибка будет сгенерирована как исключение из вызова GetListItemsAsync или будет сообщено как ошибка через GetListItemsCompletedEventArgs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...