Вызов веб-сервиса в кросс-домене - PullRequest
0 голосов
/ 03 декабря 2011

Я хочу вызвать веб-сервис из домена A с кодом C # в домене B. Я попытался добавить веб-ссылку с URL-адресом этого веб-сервиса, но выдает ошибку типа

There was an error downloading 'http://localhost:15666/MailBox/'.
Unable to connect to the remote server
No connection could be made because the target machine actively refused it 127.0.0.1:15666
There was an error downloading 'http://localhost:15666/MailBox/$metadata'.
Unable to connect to the 

У меня такмного проблем из-за кросс-доменов.Есть ли какое-то решение для этого?

Ответы [ 4 ]

0 голосов
/ 13 декабря 2011

Привет, наконец, я получил ответ на свой вопрос. Это не проблема с междоменным доменом, но у меня возникают проблемы, потому что я не создал диско-файл или WSDL-файл для своего веб-сервиса, поэтому я получаю ошибку для метаданных. Я запускаю свой веб-сервис локально и получаю WSDL файл оттуда и создайте новый файл WSDL для моего веб-сервиса и бум ... проблема решена. Спасибо за вашу помощь ...

0 голосов
/ 03 декабря 2011

Вы должны создать файл (clientaccesspolicy.xml) и поместить его в каталог wwwroot или в основной каталог вашего веб-сервиса.

Содержимое файла должно выглядеть следующим образом:

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

Подробнее об этом можно прочитать на Чтобы использовать файл clientaccesspolicy.xml для междоменного доступа

0 голосов
/ 03 декабря 2011

Ваша проблема (по крайней мере, вставленное вами исключение) не имеет отношения к вызову веб-служб в другом домене.Это означает, что на вашей машине (localhost) порт 15666 закрыт, и, следовательно, вы получаете сообщение об ошибке actively refused it.Вы либо не запускаете веб-службу на этом порту, либо брандмауэр Windows блокирует соединение, хотя это очень маловероятно, поскольку брандмауэры обычно принимают соединения от localhost.

Вы всегда можете проверить подобные вещи, позвонив по тел.localhost на конкретном интересующем вас порту или с помощью nmap для сканирования ваших собственных портов.

0 голосов
/ 03 декабря 2011

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

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