Я использую Visual Studio 2010, Silverlight 4 и веб-сервис PHP (NuSOAP).Все работает нормально, когда я копирую файл XXXTestPage.html и файл XXX.xap на удаленный сервер и открываю страницу в веб-браузере.У меня есть файл "clientaccesspolicy.xml" на удаленном сервере, и это заставляет его работать.Итак, веб-сервис NuSOAP работает хорошо не только с помощью такого инструмента, как soapUI, но и из моего приложения Silverlight.Тем не менее, я не могу отладить мою заявку в VS2010.Я получаю сообщение об ошибке: « CommunicationException не было обработано кодом пользователя. Произошла ошибка при попытке сделать запрос к URI 'http://xxxxxxxx/php/service.php'.. Это может быть связано с попыткой доступа к службе междоменным способом без надлежащегомеждоменная политика или политика, которая не подходит для служб SOAP. Вам может потребоваться связаться с владельцем службы, чтобы опубликовать файл междоменной политики и убедиться, что он позволяет отправлять HTTP-заголовки, связанные с SOAP.ошибка также может быть вызвана использованием внутренних типов в прокси-сервере веб-службы без использования атрибута InternalsVisibleToAttribute. Дополнительные сведения см. во внутреннем исключении."
Итак, мое решение VS2010 имеет только один проект, которыйэто приложение SilverlightЯ НЕ использую asp.net.
Я мог жить без отладки в течение некоторого времени, но теперь приложение становится все более сложным, и мне это нужно.
Любой знает, какподходить к этому?
Большое спасибо.
Редактировать 1 .С Fiddler (и удаляя все кэшированные данные IE9 перед каждым экспериментом) я видел это: a) За пределами VS2010 я вижу три HTTP-сеанса: один для файла .html, другой для файла .xap и последний дляфайл service.php.Все работает нормально вне VS2010.б) Внутри VS2010 (при попытке отладки) я вижу только один HTTP-сеанс для файла clientaccesspolicy.xml.Я вижу ответ, содержащий именно это:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from>
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Поскольку больше нет сеансов HTTP (где они должны быть, потому что код вызывает веб-сервис NuSOAP), похоже, что-то есть вXML-файл, который VS2010 не любит.Я скопировал этот XML-файл со страницы MSDN.Что-то не так с этим?Разве это не позволяет отправлять связанные с SOAP заголовки HTTP?Спасибо.
Редактировать 2 .Понял!Файл "clientaccesspolicy.xml" должен содержать:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="SOAPAction">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
Итак, решено!Теперь я могу отладить :-) В любом случае, спасибо.