私はWCFサービスを持っています。それはUserService
と呼ばせてください。 UserService
には、クラスライブラリへの参照があります。それをDoWork.dll
としましょう。 DoWork.dll
には、CompanyService
という別のサービスへのWCFサービスリファレンスがあります。WCFエンドポイント設定エラー: 'contract'属性が無効ですか?
私が最初にUserService
を呼び出すと、エンドポイントが設定されていないというエラーメッセージが表示されます。ウェブの周りを読んだ後で、CompanyService
バインディングとクライアント情報を、<system.serviceModel>
ノードのUserService
のweb.config
に追加する必要があることが判明しました。
ここでは、次のとおりです。
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IComapnyService" />
</basicHttpBinding>
</bindings>
<client>
<endpoint name="BasicHttpBinding_ICompanyService"
address="http://it-dev.company.local:81/Project/Copmpany/CompanyService.svc"
binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IComapnyService"
contract="CompanyService.ICompanyService" />
</client>
私が持っている問題はcontract="CompanyService.ICompanyService"
は私にエラーを示しています
The 'contract' attribute is invalid - The value 'CompanyService.ICompanyService' is invalid according to its datatype 'clientContractType' - The Enumeration constraint failed.
、私は直接UserService
WCFプロジェクトにCompanyService
の参照を追加した場合、エラーは消える(明らかに)。しかし、私はこれを行う必要はありません。私はICompanyService
契約があるネームスペースを完全に修飾しようとしましたが、どちらもうまくいきません。 .suoファイルを削除してプロジェクトを再構築したが、どちらもうまくいきませんでした(Web上の他の場所で提案されています)。また、contract=
と入力すると、ドロップダウンリストが表示されますが、CompanyService.ICompanyService
は見つかりません(私がUserService
プロジェクトで直接サービスを参照している場合のみ)。
Tools > WCF Service Configuration Editor
を使用して設定しようとしましたが、それは役に立ちません。
私はすべてがうまくいくように注意する必要がありますが、intellisenseが私に青い波状の下線とそのエラーメッセージを与えているということは気に入らないのです。私は、がDoWork.dll
を参照しているため、CompanyService
が契約を正しく見ることができないため、web.config
に何か別のものが必要であると感じています。
ご意見をいただければ幸いです。前もって感謝します。
私は最近これを見つけ、実際には完全な名前空間を含めて自分の問題に貢献していることを発見しました。この問題を抱えている人には注意してください。 – Ian