2011-07-11 5 views
2

IISでホストされているシンプルなWebサービスを参照する必要があります。私が 'Service Reference'を追加すると、私のapp.configは<system.serviceModel>のものがたくさん入っています。 サービスリファレンスを旧式のWebリファレンスに変更すると、私のapp.configに実際に必要な唯一の設定オプションがWebサービスのURLになります。app.configを混乱させることなくWCFサービスリファレンスを設定できますか?

WCFサービスリファレンスがあなたのapp.configを必要なもので汚染するすべての迷惑メールはありますか?または、合理的なデフォルトを使用して、bindingsendpointsをすべて削除し、以前のASMX Webサービス時代には不要だったような混乱を避ける方法があります。ますます多くのサービスが追加されるにつれて、これは.configファイルが扱いにくいものになるようです。

+0

あなたが望むなら、それはすべてコードで行うことができますが、app.configのこれらのセクションを盲目的に見て、自分たちの仕事をさせる方がよいでしょう。アプリが動作しているときにその一部を削除してみてください。「ジャンク」や「汚染」などの単語は適用されません。そのようなものが必要です。 –

+0

*私はすべてのものを必要としません。しかしもちろん、Webサービスは絶対にその仕事をしてくれます。私は、これらのものが合理的なデフォルトとして初期化される方法があるかどうかを探しています。明らかに制限されていましたが、古いASMX Webサービスはほとんどゼロの構成で、このように機能しました。 – mattmc3

答えて

2

WCFサービスリファレンスがあなたのapp.configを必要なもので汚染するすべての迷惑メールはありますか?

完全に同意します。純粋なジャンク。私はsvcutil.exeを使用して、厳密に型指定されたクライアントをWCFサービスに生成します。それから、私は手動で生成した.csファイルをプロジェクトに組み込み、Web/app.configに手作業で必要なものを手動で追加します。ほとんどの場合、私は必要なのは、クライアント側でこれです:私はMTOMと私はsvcutil.exeコマンドによって自動生成されたapp.configファイルを見て、私は私が必要なものを決めるいくつかの派手なものを使用するサービスのための当然の

<system.serviceModel> 
    <client> 
     <endpoint 
      address="http://example.com/fooservice/foo.svc" 
      binding="basicHttpBinding" 
      contract="IFooServiceConbtract" /> 
    </client> 
</system.serviceModel> 

+0

全体のバインディング設定をせずにどうしたのですか? – mattmc3

+0

@ mattmc3、あなたはどのようなバインディング設定について話していますか?私が知っているのは、私のサービスで 'basicHttpBinding'が使われているということです(私はサービスを書いたことを知っています:-))。私の例に示すように、クライアント=> 'binding =" basicHttpBinding "'に伝える必要があります。私が 'wsHttpBinding'を使用していたのであれば、私はクライアントに適応したでしょう。簡単なピーシー。 –

+0

あなたは絶対に正しいです!驚くばかり!テストサービスでbasicHttpBindingエンドポイントを定義していないので、svcutilからoutput.configファイル全体をカスタムwsHttpBindingを定義して取得していました。今では、なぜ、サービス参照の追加ダイアログがこのようにしないのかという疑問が残っていますか?ご協力いただきありがとうございます! – mattmc3

2

.NET Frameworkバージョン4ではこれらの問題が解決され、ユーザーはサービス構成のサイズと複雑さを軽減する方法を提供します。 Simplified Configuration

+0

私は4.0/VS2010です。参照を追加すると、app.configはそれほど単純ではないので、サービス参照を追加した後、手動でこれをトリムする必要がありますか? – mattmc3

+0

@ mattmc3あなたは.NET 4.0であっても、まだいくつかの追加情報があります。だから、私はいつも基本的な最小限に自動生成されたものを削除し、必要に応じて追加する。ここでVSが発生するものの後に私の出発点は次のとおりです。 <エンドポイントアドレス= "のhttp://localhost/VCIndex/Calculator.svc" 結合= "basicHttpBinding" 契約= "ServiceReference1.ICalculator"/>

2

DotNet Rocks TVでスクリーンキャストをチェックしてください。彼はあなたが探しているものを正確に表示し、きれいなWCF設定を実現する方法を教えてくれます。 svcutilそれらを台無しに!)。

関連する問題