MessageXmlProtocolError Аргументы: отладка строк ресурсов недоступна.Часто ключ и аргументы обеспечивают достаточную - PullRequest
0 голосов
/ 28 ноября 2011

У меня есть веб-сайт, который содержит небольшой плагин Silverlight, который вызывает очень простой сервис WCF для сохранения значений в сеансе.

Отлично работает на моем ПК и нормально работает только на моем компьютере на сервере (хостинг-провайдер).Я заметил, что на всех машинах, на которых установлен Silverlight Developer Edition, мое приложение Silverlight работает нормально, однако на всех машинах, на которых установлен Silverlight Generic Edition, мое приложение завершается ошибкой при вызове службы WCF со следующим сообщением: Дополнительная информация: [MessageXmlProtocolError] Аргументы: Отладка строк ресурсов недоступна.Часто ключ и аргументы предоставляют достаточную информацию для диагностики ...

У меня есть файлы crossdomain.xml и clientaccesspolicy.xml, которые должны быть правильными, и я использую basicHttpBinding без защиты.Также нет проблем с редакциями для разработчиков.Кто-нибудь может помочь?(Версия Silverlight = 4)

Ответы [ 2 ]

0 голосов
/ 12 марта 2012

Я только что добавил код, который изменяет URL-адрес службы wcf, чтобы он работал на правильном сервере.Это решило проблему

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

Проблема в том, что полученный ответ не соответствует ожиданиям службы WCF. Из документации MSDN MessageXmlProtocolError:

"Возникла проблема с XML, полученным из сети. Дополнительные сведения см. Во внутреннем исключении."

Это означает, что вам нужно увидеть, что такое внутреннее исключение, чтобы определить действительную причину.

Если служба WCF размещена в IIS по определенному URL-адресу, возможно, отправители не авторизованы для доступа к этому URL-адресу на веб-сайте. У нас была эта проблема более одного раза.

Способы устранения неполадок:

1) Установите SDK на компьютер, на котором возникли проблемы, чтобы проверить, можете ли вы получить полное исключение.

2) Используйте трассировку WCF, добавив в ваш web.config блок, подобный следующему (при условии, что служба WCF размещена в IIS):

  <system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="traceListener"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData="c:\log\WebTrace.svclog"  />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>

3) Используйте такой инструмент, как fiddler, чтобы отследить запрос и ответ от клиента WCF, чтобы выяснить, можете ли вы отследить проблему.

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