私はだから私のソリューションは4つのプロジェクトスケーラブルWCFソリューション
- Contact.Service(サービスおよびデータコントラクト)
- Contact.ServiceImpl(HostFactoryを持って
NetFX Harmonics: Creating Streamlined, Simplified, yet Scalable WCF Connectivityで発見スケーラブルなWCFソリューションを実装しようとしていますおよびサービス自体)
- コンタクト:サービスクライアント
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アクションによって引き起こされます。
P.S. Person.svcは私のContact.ServiceHostプロジェクトにあります
<%@ ServiceHost Service="Contact.Service.PersonService" %>
私は複数のスタートアッププロジェクトを設定しており、運がない。 ポップアップウィンドウで「クラスライブラリの出力タイプのプロジェクトを直接起動することはできません」というエラーが表示されます。 もう1つ、私はPersonを変更しました。svcと今は工場を使用しています<%@ ServiceHost Service = "Person.Service.PersonService" Factory = "Person.Service.PersonServiceFactory"%>そして、あなたは正しいですか、wcfサービスは起動していません、タスクバーのポップアップ情報メッセージ – user1084557
何servicehostプロジェクトのタイプですか?クラスライブラリであってはなりません。あなたの問題のようです。 –
Contact.Serviceプロジェクトを変更しましたが、実際に削除して再度作成しました(dataclasslibraryは今WCFサービスライブラリを選択しています)。私はポップウィンドウに情報があります:使用法:WCFSVCHOST.exe/service: –
user1084557