CommunicationException при вызове WCF из Silverlight - PullRequest
6 голосов
/ 21 августа 2009

это украдет мое здравомыслие. Я прошел почти все, что нашел в сети, и не сделал ни одного шага вперед. Разочарование не достаточно сильное, чтобы описать это сообщение об ошибке, которое появляется, независимо от того, что я делаю.

Но один за другим.

У меня 64-битный сервер W2008 с немецкой версией VS 2008 SP1, Silverlight Tools 3.0

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

Я создал новую WCF-службу, назвал ее конечной точкой и установил ее привязку к basicHttpBinding. Я добавил атрибут

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]

классу Service1 и строке

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>

для system.serviceModel в App.config

Я оставил все как есть и успешно протестировал сервис через WCF-клиента. Затем я опубликовал его в своем местном IIS7 на http://localhost/WCFTest

В своем приложении Silverlight я добавил службу в ссылку на службу, используя http://europa.therestofmydomain/WCFTest/WcfTest.Service1.svc

Я добавил следующий код для клиента:

using OSMDeepEarthExample.ServiceReference1;

...
Service1Client s1 = new Service1Client();
s1.GetDataCompleted += new System.EventHandler<GetDataCompletedEventArgs>(s1_GetDataCompleted);
s1.GetDataAsync(20);

void s1_GetDataCompleted(object sender, GetDataCompletedEventArgs e)
{
  CountFetchedData.Text = e.Result;
}

Я добавил clientaccesspolicy.xml И crossdomain.xml в webroot (C: \ inetpub \ wwwroot)

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>

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-access-from domain="*" />
  <allow-http-request-headers-from domain="*" headers="SOAPAction" />
</cross-domain-policy>

Я перезапустил IIS. Дважды. Часто.

Я установил Помощник по веб-разработке, чтобы, возможно, получить более значимую информацию о том, ЧТО не так. Но это приводит к краху IE.

У меня нет идей. И скоро начну проявлять агрессию по отношению к моему оборудованию. Пожалуйста, помогите моему оборудованию!

Как заметил Джон, я забыл полное сообщение об ошибке, вот оно:

* 1042. Ден Бесситцер де Денстес, Венден, Дейм Энд Домененбергбергфайнд Ричтлинидатеи вердеффенчен и дас Сенден фон, посвященный SOAP, без посредников. Inneren Ausnahme.

Короче говоря, он говорит, что может отсутствовать междоменное правило.

1 Ответ

7 голосов
/ 21 августа 2009

Вот так, я сделал это!

Я удалил clientaccesspolicy.xml из корневого каталога, оставив там только crossdomain.xml. Что за одиссея! Спасибо за внимание, это помогло очистить мой разум. Я надеюсь, что кто-то с подобной проблемой найдет текст полезным немного!

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