Использование веб-службы в Silverlight - PullRequest
0 голосов
/ 01 сентября 2010

У меня есть нормальный веб-сервис .asmx, который нормально загружается в браузере. Когда я загружаю веб-страницу с приложением Silverlight, данные не загружаются, и я получаю сообщение об ошибке JavaScript, в котором говорится:

Сведения об ошибке веб-страницы

Пользовательский агент: Mozilla / 4.0 (совместимый; MSIE 8.0; Windows NT 6.1; Trident / 4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Медиа Центр ПК 6.0; .NET4.0C; .NET4.0E) Метка времени: среда, 1 сентября 2010 г. 16:43:32 UTC

Сообщение: необработанная ошибка в Приложение Silverlight Исключение произошло во время операции, что делает результат недействителен. Проверьте InnerException для деталей исключения. в System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary () в Operations.Dashboard.DashboardMetrics.GetP200MA_CountCompletedEventArgs.get_Result () в Operations.Dashboard.MainPage.client_GetP200MA_CountCompleted (Объект отправитель, GetP200MA_CountCompletedEventArgs e)
в .Operations.Dashboard.DashboardMetrics.MetricsSoapClient.OnGetP200MA_CountCompleted (Объект штат) Строка: 1 символ: 1 код: 0 URI: http://ukhqdevmp -3790: 8080 / ChartTestPage.aspx

Сообщение: необработанная ошибка в Приложение Silverlight Исключение произошло во время операции, что делает результат недействителен. Проверьте InnerException для деталей исключения. в System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary () в Operations.Dashboard.DashboardMetrics.GetP200C_CountCompletedEventArgs.get_Result () в Operations.Dashboard.MainPage.client_GetP200C_CountCompleted (Объект отправитель, GetP200C_CountCompletedEventArgs e)
в Operations.Dashboard.DashboardMetrics.MetricsSoapClient.OnGetP200C_CountCompleted (Объект штат) Строка: 1 символ: 1 код: 0 URI: http://ukhqdevmp -3790: 8080 / ChartTestPage.aspx

Все это прекрасно работает в VS, но при доступе к нему с другого компьютера через IIS не работает.

MetricsSoapClient client = new MetricsSoapClient();
client.GetP200C_CountCompleted += new EventHandler<DashboardMetrics.GetP200C_CountCompletedEventArgs>(client_GetP200C_CountCompleted);
client.GetP200C_CountAsync(yearStart, yearEnd);
client.GetP200MA_CountCompleted += new EventHandler<DashboardMetrics.GetP200MA_CountCompletedEventArgs>(client_GetP200MA_CountCompleted);
client.GetP200MA_CountAsync(yearStart, yearEnd);

public void client_GetP200C_CountCompleted(object sender, DashboardMetrics.GetP200C_CountCompletedEventArgs e)
{ ... 

ОБНОВЛЕНИЕ : Используя Fiddler, я вижу, что это проблема безопасности, я предполагаю, что это двойной скачок.

Ошибка входа для пользователя 'DOMAIN \ UKHQDEVMP-3790 $'.

1 Ответ

0 голосов
/ 01 сентября 2010

Прежде всего, вы должны убедиться, что при переносе его на другой компьютер правильный адрес вашего веб-сервиса и вы не пытаетесь подключиться к localhost или к чему-то, относящемуся к среде Visual Studio.

Я помню эту проблему, но очень смутно, и я не могу вспомнить, какое у меня было решение, поэтому я вернулся и посмотрел код для предыдущего проекта и настройки веб-службы.Это долгий путь, но, возможно, мой код поможет вам в правильном направлении, если настройка веб-службы неверна.Проверьте следующую строку, которая у меня была, и посмотрите, поможет ли это в чем-либо (это было сделано с Silverlight 3):

Uri uri = new Uri(Application.Current.Host.Source,
    "../Services/YourWebService.asmx");

// notice this line is commented out and a * is used for biniding instead
//System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding(); // "*"

YourWebService.YourWebServiceSoapClient = 
    new YourWebService.YourWebServiceSoapClient("*",
            new System.ServiceModel.EndpointAddress(uri));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...