2009-08-21 11 views
6

esto me va a robar la cordura. He revisado casi todo lo que encontré en la web y no di un solo paso hacia adelante. La frustración no es lo suficientemente fuerte como para describir este mensaje de error apareciendo sin importar lo que estoy haciendo.CommunicationException al llamar a un WCF de Silverlight

Pero uno después del otro.

Tengo una máquina del servidor W2008 de 64 bits, con el VS 2008 SP1 versión alemana, Herramientas de Silverlight 3.0

quiero consumir una WCF-servicio desde una aplicación de Silverlight. Y, como mucha gente, recibo esta muy frustrante Excepción de Comunicación no descriptiva al final de la invocación.

Creé un nuevo WCF-Service, llamado Endpoint y establecí su enlace a basicHttpBinding. He añadido el atributo

[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 

a la clase Service1 y la línea

<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/> 

a la system.serviceModel en el App.config

Dejé todo lo demás tal como es y probado el servicio a través de WCF-client con éxito. Luego publiqué a mi IIS7 local para http://localhost/WCFTest

Dentro de mi aplicación Silverlight, he añadido el servicio a la ServiceReference usando http://europa.therestofmydomain/WCFTest/WcfTest.Service1.svc

he añadido el código siguiente para el cliente:

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; 
} 

añadí un clientaccesspolicy.xml y una crossdomain.xml a la 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> 

que reinicie el IIS. Dos veces. A menudo.

Instalé Web Development Helper para tal vez obtener información más significativa acerca de QUÉ está mal. Pero esto hace que IE se cuelgue.

No tengo ideas. Y pronto comenzaré a ser agresivo con mi hardware. Por favor, ayuda a mi hardware!

Como señaló John, hice olvidó la ErrorMessage completo aquí se trata:

Fehler beim Senden einer Anforderung an den URI "http://europa.therestofmydomain/WCFTest/WcfTest.Service1.svc". Ursache ist möglicherweise, dass ohne die dietsprechende domänenübergreifende Richtlinie oder mit einer nicht für SOAP-Dienste geeigneten Richtlinie domänenübergreifend auf einen Dienst zugegriffen wurde. Momentos mágicos de muerte y muerte en el hogar, Dormir en el hogar, Dormir en el hogar, Dormir en el hogar, Dormir en el hogar, Dormir en el hogar, Dormir en el jardín de infancia. Dieser Fehler kann auch durch Verwendung von internen Typen im Webdienstproxy ohne das InternalsVisibleToAttribute-Attribut verursacht werden. Detalles de Weitere finden Sie in der inneren Ausnahme.

En resumen, dice que puede haber una regla de interdominio que falta.

+0

Fuera de toda esa frustración, una vez no publicó la excepción que recibió. La excepción completa. El resultado de ex.ToString(). –

+0

Tiene razón, agregué el mensaje de error al final de mi publicación – Aaginor

Respuesta

7

¡Vaya, lo he hecho!

Eliminé clientaccesspolicy.xml de la raíz web, dejando solo crossdomain.xml allí. ¡Qué odioso! Gracias por escuchar, me ayudó a aclarar mi mente. ¡Espero que a alguien con un problema similar le resulte útil el texto un poco!

+0

, esto también funciona con vs2010, sl4, w7. después de horas encontré su solución. dankeschöööööön – devio

+0

Hombre ... GRACIAS. Esto funcionó para mí también. ¿Alguien tiene una explicación razonable para este comportamiento (en mi humilde opinión)? –

Cuestiones relacionadas