Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WCF, Web Services, Remoting Новый топик    Ответить
 WCF+Silvelright. Перестали вызываться WCF-методы  [new]
Renziglov
Member

Откуда:
Сообщений: 60
Привет
В моем Silverlight приложении я стал получать ошибку:

An error occurred while trying to make a request to URI 'https://mysite/Folder/WCFServices/MyService.svc'. This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place…

Началось, когда меня попросили изменить IIS конфигурацию и заменить Web site на Web Application. Ну, то есть внутри сайта создается аппликэйшн и ссылка ставится на ту же физическую папку, что и было до этого. В УРЛе добавляется имя папки, а номер порта остется одним и тем же для всех аппликейшенов. До этого улучшения все работало без проблем.
Файлы clientaccesspolicy и crossdomain я накопировал куда только не накопировал: root, sub-root, whatever-root. а также в саму папку сервисов WCFServices. Результат нулевой.

Еще кое-что: если вызываю проблемный сервис из серверного кода (Index.aspx.cs, синхронно), все работает. Как только вызываю из силверлайтного приложения – выбрасывает исключение, показанное выше.

Кроме того: для Silverlight вызова Fiddler показывает 200 – нет проблем, хотя проблема-то вот она, и показывает переключение на HTTP, хотя там никакого HTTP быть не должно, в web.config стоит только HTTPS конфигурация.

Почему сайт работат, а аппликейшн таки уже нет?
Спасибо.

ПС. Мне нравится этот компактный шрифтик у вас в редакторе. Что это за шрифт?
21 сен 18, 21:24    [21682395]     Ответить | Цитировать Сообщить модератору
 Re: WCF+Silvelright. Перестали вызываться WCF-методы  [new]
256k
Member

Откуда: с.Торчилово, Псковская обл.
Сообщений: 356
У вас cross-domain проблема, надо использовать "proper cross-domain policy".
Например, для WCF сервиса попробуйте использовать в корне файл

crossdomain.xml

автор
<?xml version="1.0"?>
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
25 сен 18, 13:03    [21685337]     Ответить | Цитировать Сообщить модератору
 Re: WCF+Silvelright. Перестали вызываться WCF-методы  [new]
Renziglov
Member

Откуда:
Сообщений: 60
256k,
Используются файлы:

clientaccesspolicy.xml

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
        <domain uri="http://*"/>
        <domain uri="https://*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy> 


crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="SOAPAction,Content-Type"/>
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*"/>
</cross-domain-policy>


Оба файла помещены:

-В рут папку Web-сайта
-В рут папку Web-аппликэйшона
-В папку WCF сервисов

Эффект нулевой. Что еще нужно сделать?
26 сен 18, 17:41    [21687159]     Ответить | Цитировать Сообщить модератору
 Re: WCF+Silvelright. Перестали вызываться WCF-методы  [new]
256k
Member

Откуда: с.Торчилово, Псковская обл.
Сообщений: 356
Renziglov
256k,
Используются файлы:

clientaccesspolicy.xml

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="*"/>
        <domain uri="http://*"/>
        <domain uri="https://*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy> 


crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="SOAPAction,Content-Type"/>
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*"/>
</cross-domain-policy>


Оба файла помещены:

-В рут папку Web-сайта
-В рут папку Web-аппликэйшона
-В папку WCF сервисов

Эффект нулевой. Что еще нужно сделать?


я бы попробовал использовать файлы со всеми разрешениями, типа такого, как я написал, и посмотреть, как сработает, затем постепенно добавлять ограничения.
Кроме того, я добавлял обработку кроссдоменных запросов в код сервиса, правда, для Рест запросов.
27 сен 18, 10:06    [21687784]     Ответить | Цитировать Сообщить модератору
Все форумы / WCF, Web Services, Remoting Ответить