J'essaie d'appeler un service Web WCF (que j'ai développé) à partir d'une application Silverlight. Pour une raison quelconque, l'application Silverlight ne fait pas l'appel de savon http au service. Je le sais parce que je renifle tout le trafic http avec Fiddler (et ce n'est pas un appel localhost).Comment appeler un service Web WCF à partir de Silverlight?
Cette ma configuration du serveur correspondant à WCF:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<services>
<service behaviorConfiguration="ServiceBehavior" name="Service">
<endpoint address="" binding="basicHttpBinding" contract="Service"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
</system.serviceModel>
Et le fichier ServiceReferences.ClientConfig dans l'application silverlight (je suis en utilisant la version bêta 2):
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_Service" maxBufferSize="65536"
maxReceivedMessageSize="65536">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://itlabws2003/Service.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_Service" contract="Silverlight_organigram.DataService.Service"
name="BasicHttpBinding_Service" />
</client>
</system.serviceModel>
C'est le méthode silverlight qui appelle le service, je colle toute la méthode pour la copleteness, le lambda est de rendre l'appel synchrone, je l'ai débogué et après la ligne client.GetPersonsAsync(), Fiddler ne montre aucun message voyageant vers le serveur.
public static List<Person> GetPersonsFromDatabase()
{
List<Person> persons = new List<Person>();
ServiceClient client = new ServiceClient();
ManualResetEvent eventGetPersons = new ManualResetEvent(false);
client.GetPersonsCompleted += new EventHandler<GetPersonsCompletedEventArgs>(delegate(object sender, GetPersonsCompletedEventArgs e)
{
foreach (DTOperson dtoPerson in e.Result)
{
persons.Add(loadFromDto(dtoPerson));
}
eventGetPersons.Set();
});
client.GetPersonsAsync();
eventGetPersons.WaitOne();
return persons;
}
Est-ce que quelqu'un a des suggestions comment je pourrais résoudre ce problème?
Le site Web est en cours d'exécution dans IIS 6.1 sur une autre machine dans le réseau local –