このスレッドに入る必要のない理由により、svcutil のラッパーを作成しようとしています。これにより、特定のアドレスを指すように作成された wsdl および xsd ドキュメントが標準化されます。ただし、私の WCF サービスの 1 つには 2 つの異なるサービス コントラクトがあり、1 つは内部処理用で、もう 1 つは外部クライアントに公開されます。cmd.exe からsvcutil /target:metadata serviceAddress.svcを実行すると、次のエントリを含む完全な wsdl ドキュメントが取得されます。
<wsdl:service name="MyServiceMain">
<wsdl:port name="BasicHttpBinding_IMyService" binding="tns:BasicHttpBinding_IMyService">
<soap:address location="MyServiceMain.svc" />
</wsdl:port>
<wsdl:port name="BasicHttpBinding_IInternalServiceContract" binding="tns:BasicHttpBinding_IInternalServiceContract">
<soap:address location="MyServiceMain.svc" />
</wsdl:port>
</wsdl:service>
ただし、Process オブジェクト (同じ環境変数が設定された ProcessStartInfo オブジェクトを使用し、間違いなく同じバージョンの svcutil を使用) を使用して同じコマンドを実行すると、これらの wsdl:port 要素の 1 つが不思議なことに消えます。
<wsdl:service name="MyServiceMain">
<wsdl:port name="BasicHttpBinding_IMyService" binding="tns:BasicHttpBinding_IMyService">
<soap:address location="MyServiceMain.svc" />
</wsdl:port>
</wsdl:service>
理由について何か考えはありますか?または、ボンネットの下で別のことが起こっていることを示す可能性のある正しい方向に私を向けることができる何か. 私は今困惑しているからです。