Вызов веб-службы Silverlight даже не затрагивает серверы - PullRequest
0 голосов
/ 22 декабря 2010

У меня есть собственный прокси-класс для одного веб-сервиса WCF (принимает строку, отправляет строку обратно). Асинхронный вызов веб-службы прекрасно работает из моего приложения Windows Form. Однако, когда я вызываю его из тестового приложения Silverlight, я получаю сообщение об ошибке: Hresult 0x80000012. Эта ошибка относится к атрибутам расширений для файлов, которые я считаю ... Перейти рисунок.

Используя Fiddler, я могу подтвердить, что никакой трафик не поступает в IIS, на котором размещается служба, поэтому это не является обычной проблемой междоменных ограничений. Я попытался использовать "localhost" (который работает в приложении Windows Forms) и имя, определенное в моем файле hosts, на случай, если "localhost" вызвал проблему.

Я протестировал его, выполнив асинхронный вызов из потока пользовательского интерфейса, а также из элемента очереди пула потоков с теми же результатами.

Прокси-код в основном просто упрощен по сравнению с тем, что создает прокси-генератор MS, настраивая привязки и настройки программно, а не через файлы конфигурации, и я использую в основном один и тот же источник для компиляции обычных версий .Net и Silverlight участвующих библиотек , (Теперь прокси-код MS, на котором он основан, взят из веб-службы WCF, а не из кода шаблона RIA, так что, возможно, здесь есть различия ...)

Четыре дня бесплодных поисков на этом. Любая помощь или предложения будут безумно благодарны!

1 Ответ

3 голосов
/ 22 декабря 2010

Разобрался.Я использовал (тупо) обратную косую черту в части URL, которую я использовал для установки вызова службы.Большинство внутренних частей кода MS обрабатывали это нормально и переносили их на прямые косые черты - в Windows Forms все работало без проблем на самом деле.Однако библиотеки Silverlight не смогли справиться с этим и выдавали очень полезную ошибку «HResult 0x80000012».

Изменение моих обратных слешей на слэши, похоже, решило проблему!

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