Хорошо, я видел несколько очень похожих вопросов, но ни на один из них мне, похоже, не ответили. Я создал приложение Silverlight, которое вызывает несколько сервисов для заполнения различных списков со списком из базы данных. Я получил эту работу без особых проблем на моей локальной машине.
Итак, теперь я хочу развернуть его на нашем веб-сервере. Было довольно просто получить ISS7 для загрузки приложения Silverlight. Тем не менее, ни один из моих сервисов, похоже, не работает должным образом, потому что поля со списком пусты В IE я получаю следующую ошибку:
Сообщение: необработанная ошибка в приложении Silverlight. Во время операции возникла исключительная ситуация, делающая результат недействительным. Проверьте InnerException для подробностей исключения. в System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNeeded ()
в MyTestPage.ViewModel.MyService.GetInfoCompletedEventArgs.get_Result ()
в MyTestPage.ViewModel.MainPageViewModel.b__2 (Objects, GetInfoCompletedEventArgs ea)
в MyTestPage.ViewModel.MyService.MyServiceClient.OnGetInfoCompleted (состояние объекта)
Строка 1
Чар: 1
Код: 0
URI: http://www.mywebsite.com/MyTestPage.aspx
Моя проблема в том, что эта ошибка возникает только при развертывании на веб-сервере, и я понятия не имею, как отладить эту проблему. Ошибка говорит о проверке InnerException, но я еще не нашел ответ (после нескольких часов поиска), который говорит мне, как я должен это сделать.
Я попытался перейти к службам, и я могу сделать это, используя доменное имя, например http://test.myserver.com/Services/MyService.svc. Однако при входе на сервер и использовании http://localhost:3456/Services/MyService.svc - это путь в ServicesReferences Файл .ClientConfig - не найден.
Некоторые ответы здесь предлагают использовать файл clientaccesspolicy.xml, но я не понимаю, почему это необходимо, если службы размещаются на том же сервере, что и приложение, - они не требуются при отладке на моем локальном компьютере. , Несмотря на мои оговорки, я попытался добавить файл clientaccesspolicy.xml в корень приложения, но это все равно не имеет значения.
Итак, у меня есть пара вопросов:
1) Как получить доступ к InnerException, когда я запускаю приложение на веб-сервере? Есть ли определенный файл журнала, который я могу просмотреть или включить?
2) Если по какой-то причине я пытаюсь получить доступ к службе в междоменном режиме (даже если они расположены на одном сервере), как настроить приложение так, чтобы это не требовалось?
UPDATE:
Хорошо, я смог запустить трассировку. Теперь я могу видеть детали трассировки на странице, когда она загружается, но она не говорит мне ничего полезного. Я также добавил возможность записи деталей на диск. Первоначально этот файл не был написан, и я не мог понять, почему. Затем я заметил, что обновление моего приложения Silverlight не вызывает запись в журнал. Только когда я вручную просмотрел сервисы, файл журнала был обновлен. Мне кажется, это указывает на то, что мое приложение silverlight вообще не работает с сервисами (по какой-то причине). Я попытался вырезать объект View Model и запустить сервис непосредственно из кода xaml, стоящего за файлом, но это тоже не имело никакого значения.
На данный момент, потратив более двух дней на попытки выяснить это, я подумываю начать заново с нуля.
На мой взгляд, не должно быть так сложно развернуть что-то, что работает на компьютере разработчика, на веб-сервере.