навигационный проект silverlight - проблема с доступом к XML-файлу в клиентской папке через веб-сервис - PullRequest
0 голосов
/ 23 июля 2011

Я пытаюсь получить доступ к своему XML-файлу в ClientBin безуспешно.

код:

 WebClient xmlClient = new WebClient();
 xmlClient.DownloadStringCompleted += new DownloadStringCompletedEventHandler(xmlClient_DownloadStringCompleted);
 Uri uri = new Uri("Antwerpen1.xml", UriKind.RelativeOrAbsolute);
 xmlClient.DownloadStringAsync(uri);

При отладке URI выдает следующую ошибку: System.InvalidOperationException

В результате выдается следующая ошибка: эта операция не поддерживается для относительного URI

Я могу получить доступ к своему файлу по следующему пути: http://localhost:2546/contentManagement.Web/ClientBin/Antwerpen1.xml

Что я делаюнеправильно?


обновление: я попробовал тот же код в коде моей главной страницы, и это сработало.По-прежнему ничего не получается с веб-сервисом.


update2: я обнаружил, что не проблема URI, а xmlClient.DownloadStringAsync.BaseAdress (путь, по которому хранится XML-файл в моей клиентской корзине) по какой-то причине пуст.

, заранее

1 Ответ

0 голосов
/ 23 июля 2011

Вам необходимо настроить политику клиентского доступа для веб-службы, чтобы она могла работать через границы домена.

На странице MSDN есть больше подробностей, но в основном вам нужен файл с именем 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>

Это позволит любому доступ. Чтобы заблокировать его, замените * в URI на ваш URL.

...