この WCF サービス コントラクトがあります (大幅に簡略化されていますが、含まれている名前空間に注意してください)。
namespace Foo.Services.BarService
{
[ServiceContract]
interface BarContract {... }
}
私のapp.config
(クライアント側)では、いくつかのサービスのエンドポイントを構成します:
<endpoint address="..."
binding="..."
contract="Foo.Services.BarService.BarContract" />
ただし、これにより、 をサポートするクライアントの構成にエンドポイントが見つからないというエラーが発生しますBarService.BarContract
。このエラーを取り除くには、contract
属性値を変更するBarService.BarContract
(名前空間を削除する) しかありません。
何故ですか?このエラーはどこから来たのでしょうか? コントラクト型の名前空間部分について触れてはいけないのはなぜですか? その結果、WCF が一致するエンドポイントを見つけられないという結果になるのではないでしょうか?
以下の @Ladislav Mrnka のコメントの質問に返信してください。
私はクライアント側について話している。(ちょっと言い忘れました。申し訳ありません。) このエラーはサーバー側から発生する可能性がありますか?
BarClient
Visual Studio の[サービス参照の追加]機能を使用して、上記のサービス コントラクトとそれを実装するクラスを生成しました。BarService
他の人が運営しているの URL を指定しました。Foo.Services.BarService
ここで、サービスを名前空間に配置する必要があることも指定しました。BarClient
を介してではなく、自動生成されたクラスを介してサービスを直接使用するつもりでしたChannelFactory<BarContract>
。