私は WCF サービス - クライアントを書いています。サービスはエンドポイント URL を引数として取得しています。これは Windows フォーム アプリケーションです。
サービス実装は次のとおりです。
BaseAddress = new Uri(args[0]);
using (ServiceHost host = new ServiceHost(typeof(DriverService), BaseAddress))
{
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
host.Description.Behaviors.Add(smb);
//host.AddServiceEndpoint(typeof(DriverService), new BasicHttpBinding(), BaseAddress);
host.Open();
host.Open() の後、エラーが発生します。別のソリューションで同じ wcf コードを書いたときに、問題なく動作しました。クライアントとサービスがありました。クライアントが接続するまで待っているときに、サービスを開く必要があります。
私が理解していることから、これはサービスであり、アドレスを指定すると、指定されたアドレスでリッスンし、インターフェイスのメソッドをさまざまなクライアントに公開します。
エラー:
Service 'DriverHost.DriverService' has zero application (non-infrastructure) endpoints. This might be because no configuration file was found for your application, or because no service element matching the service name could be found in the configuration file, or because no endpoints were defined in the service element.
インターフェイスとクラスのコード:
[ServiceContract]
public interface IDriverService
{
[OperationContract]
string WhoAmI();
}
public class DriverService : IDriverService
{
public string WhoAmI()
{
return string.Format("Im on port !");
}
}