Silverlight アプリケーションから (私が開発した) WCF Web サービスを呼び出そうとしています。何らかの理由で、Silverlight アプリはサービスに対して http soap 呼び出しを行いません。これは、Fiddler を使用してすべての http トラフィックをスニッフィングしているため (ローカルホストの呼び出しではないため)、わかっています。
これは、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>
そして、Silverlight アプリの ServiceReferences.ClientConfig ファイル (ベータ 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>
これは、サービスを呼び出す Silverlight メソッドです。完全性のためにメソッド全体を貼り付けます。ラムダは、呼び出しを同期させるためのものです。デバッグし、client.GetPersonsAsync() の行の後に、Fiddler にメッセージが表示されません。サーバ。
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;
}
これを修正する方法について誰か提案がありますか?