Ссылки на службы Windows Phone 7 Silverlight CommunicationException: «Сервер вернул ошибку: не найден» - PullRequest
0 голосов
/ 17 ноября 2011

Я занимаюсь разработкой приложения для Windows Phone 7. Я пытаюсь использовать службы, предоставляемые веб-сайтом, с которого я пытаюсь получить информацию. Я использую асинхронный запрос. Поэтому, если я пытаюсь получить информацию с веб-сайта без какой-либо аутентификации, я использую этот код:

EventSrv.EventSrvSoapClient client = new EventSrv.EventSrvSoapClient();
client.GetAppointmentsAsync();
client.GetAppointmentsCompleted += new EventHandler<EventSrv.GetAppointmentsCompletedEventArgs>(events_completed);

и работает нормально. Но как только я хочу использовать сервис с веб-сайта, который требует аутентификации, я получаю

CommunicationException: _innerException: «Сервер вернул ошибку: не найден»

в

public L2P.DocumentsService.GetDocumentsResponse EndGetDocuments(System.IAsyncResult result) 
{
object[] _args = new object[0];
//Between this line
L2P.DocumentsService.GetDocumentsResponse _result = ((L2P.DocumentsService.GetDocumentsResponse)(base.EndInvoke("GetDocuments", _args, result)));
//and this line
return _result;
}

Я передаю полномочия следующим образом:

DocumentsService.BaseServiceSoapClient docClient = new DocumentsService.BaseServiceSoapClient();
docClient.ClientCredentials.UserName.UserName = Variables.username;
docClient.ClientCredentials.UserName.Password = Variables.password;
docClient.GetDocumentsCompleted += new EventHandler<DocumentsService.GetDocumentsCompletedEventArgs>(getDocumentsCompleted);
docClient.GetDocumentsAsync();

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

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 18 ноября 2011

Я наконец понял это!Сервер использует обычную аутентификацию, а заголовок по умолчанию имеет значение «POST».Поэтому мне нужно было изменить заголовок, установить его в «Basic» и добавить учетные данные.Кроме того,

CommunicationException: «Сервер возвратил ошибку: не найден»

всегда отображается, если есть необработанное исключение.Поэтому вам нужно отладить и проверить исключение _innerException для получения дополнительной информации.

...