NetFX Harmonicsにあるスケーラブルなwcfソリューションを実装しようとしています:合理化された、簡素化された、スケーラブルなWCF接続の作成
だから私のソリューションには4つのプロジェクトがあります
- Contact.Service(サービスおよびデータ契約)
- Contact.ServiceImpl(HostFactoryおよびサービス自体)
- Contact.ServiceHost(Web.configおよびPerson.svc)
- Contact.ServiceClient
Contact.ServiceClientには、実際にサービスを呼び出すApp.configとProgram.csがあります。
App.config
<configuration>
<appSettings>
<add key="PersonServiceActiveEndpoint" value="PersonServiceBasicHttpBinding" />
</appSettings>
<system.serviceModel>
<client>
<endpoint name="PersonServiceBasicHttpBinding"
address="http://localhost:1031/Person.svc"
binding="basicHttpBinding"
contract="Contact.Service.IPersonService" />
</client>
</system.serviceModel>
</configuration>
Program.cs
BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
EndpointAddress endpointAddress = new EndpointAddress("http://localhost:1031/Person.svc");
IPersonService personService = new ChannelFactory<IPersonService>(basicHttpBinding, endpointAddress).CreateChannel();
Person person = personService.GetPersonData("F488D20B-FC27-4631-9FB9-83AF616AB5A6");
Console.WriteLine(person.FirstName);
この例を実行しようとすると、例外がスローされます。
メッセージを受け入れることができるhttp:// localhost:1031/Person.svcでリッスンしているエンドポイントはありませんでした。これは多くの場合、誤ったアドレスまたはSOAPアクションが原因で発生します。
PSPerson.svcは私のContact.ServiceHostプロジェクトにあります
<%@ ServiceHost Service="Contact.Service.PersonService" %>