2012-01-20 26 views
0

私は私のメインアプリケーションで参照する標準クラスライブラリインフラストラクチャアセンブリを持っています。 インフラストラクチャアセンブリは内部的にWebサービスを使用し、メインアプリケーションに機能を公開します。サービス参照の設定

私の主なアプリケーションでwebserviceに参照を追加する必要がある場合は、私はEndpointexeptionを取得します。もし私がそれを追加すると、すべて正常に動作します。インフラストラクチャのdllは、メインアプリケーションapp.configの情報を読み込んで、エントリがそこになければならないと思います。しかし、メインアプリケーションがwebservieを直接呼び出さないため、外部DLLを介してWebサービスを公開することはできません。 Webサービスがメインのアプリケーションセキュリティモードを無視し、外部のdllのapp.configからそれを読み取るのは見知らぬ人です。

私の前提に間違いがない場合、どのように私はwebserviceについて知っているメインアプリなしで外部DLLにWebサービスを公開しますか?

答えて

1

サービス参照を追加するときに、生成されたプロキシが内部であることを確認する必要があります。詳細は

C#, WCF, Hide web service through dll

これは、クライアントへのWCFインターフェイスを非表示になります。

あなたのクラスライブラリプロジェクトを使用するクライアントが、app/web.configにWCF設定キーを追加する必要がない場合、あなたのライブラリはコード内のEndPoint/address/bindingを設定する必要があります)しかし、私はWCF側で何かが変わったようにこの道を進むことをお勧めしません。あなたのクラスライブラリはもう使えません。

+0

あなたの回答をお寄せいただきありがとうございます。私はあなたが推奨したことを行い、Webサービスメソッドを公開するインフラストラクチャにクラスを追加しました。メインアプリケーションのapp.configに情報を追加すると動作します – klashagelqvist

+0

私の回答を編集した場合 –

+0

内部的にエンドポイント/バインディングを設定しないようにあなたのポイントを受け入れ、メインのapp.configに必要な情報を追加しました。ありがとう – klashagelqvist

0

メインアプリケーションにサービス参照を追加する必要はありませんが、関連する設定をメインのapp.configにコピーする必要があります

関連する問題