サービスが単一のアプリケーション エンドポイントを公開する場合にのみ (相互運用性の理由から) 正しく機能する WCF のカスタム動作を作成しています。
IServiceBehavior.Validate
このメソッドを使用して、サービスによって公開されているアプリケーション エンドポイントが 1 つだけであることを確認できるようにしたいと考えています。現在、私は次のことを行っています:
public void Validate(
ServiceDescription serviceDescription,
ServiceHostBase serviceHostBase)
{
if (serviceDescription.Endpoints.Count > 1)
{
throw new InvalidOperationException();
}
}
serviceDescription.Endpoints
残念ながら、エンドポイントを含むすべてのエンドポイントが含まれていIMetadataExchange
ます。これにより、完全に有効なサービスで検証が失敗します。
私が必要としているのは、アプリケーション (非インフラストラクチャ) エンドポイントのみをカウントする方法ですが、WCF 自体がどれがどれであるかを判断する方法を見つけることができません。