Webリファレンスとサービスリファレンス


110

Paypalで巨大なレンガの壁にぶつかっただけです。WSDLを使用してラッパークラスを作成する通常のC#プロジェクトを作成しました。

非Webプロジェクトを作成する場合、wsdlを追加するための唯一のオプションはWebサービス参照です。そして、これはWebリファレンスと同じプロキシクラスのセットを構築しますが、実際にはそうではありません。

そのため、私はこのプロキシクラスのリストでサービス(SoapBinding)として使用する適切なインターフェイスをずっと探していましたPayPalAPIAASoapBindingが、PayPalの連絡先に連絡していませんでした。

PayPalAPIAASoapBindingWeb参照ベースのサービス参照で確認できるインターフェースが見つからなかったため、使用する必要があるものを表示する次の2つのインターフェースしか確認できませんでした。

PayPalAPIAAInterfaceClient
PayPalAPIInterfaceClient 

それで、ああ、わかった。たぶん、サービス参照対Web参照を作成しました。Web参照は、Webプロジェクトのオプションです。しかし、私は自分のサービス参照を自分のWebプロジェクトに密に結合したくありません。だからこそ、C#プロジェクトを作成しました。

では、サービス参照とWeb参照とは一体何なのでしょうか。そして、Service Referenceがループをスローし、Webリファレンスが提供するものとは異なる一連のインターフェイスを提供する場合、これを別のプロジェクトにどのように分離するべきですか?

また、状況をさらに混乱させるために、VS 2008にはWebサービスアプリケーションプロジェクトがあります。

だから私は何を使うのですか? .NET 3.5フレームワークを使用しており、WCFに移行する準備が整っていません。WCFを使用していなくても、新しいサービスリファレンスを使用できますか?まだWCFではなく.NET 3.5を使用していて、基本的なWebサービスを実行したい場合でも、サービス参照ルートに進んでWCFフレームワークを使用しないのですか?それでも.NET 2.0 Webリファレンスのように使用できるということですが、まったく異なる世代のWSDLを取得するということですか?



2
8年後、まだ関連しています。
Mike Devenney、2018年

回答:


213

Add Web Referenceは、古いスタイルの非推奨のASP.NET Webサービス(ASMX)テクノロジーです(XmlSerializerのみを使用)-これを行うと、ASMX Webサービス用のASMXクライアントを取得します。これは、ほぼすべてのプロジェクト(Webアプリ、Webサイト、コンソールアプリ、Winformsなど)で実行できます。

サービス参照の追加は、WCFサービス参照を追加する新しい方法です。これにより、単純な古いASMXのものよりもはるかに高度で柔軟なサービスモデルが提供されます。

WCFに移行する準備が整っていないため、本当に必要な場合は、古いスタイルのWeb参照を追加することもできます。「サービス参照の追加」を実行するときに表示されるダイアログで、[詳細設定]をクリックします。 ]ボタンの左隅にあるボタン:

代替テキスト

次に表示されるダイアログで、下部にある[Web参照の追加]ボタンを選択します。


6
MSがWCFダイアログボックスでそれを非表示にするのはなんて愚かなことでしょう。ここに配置しても意味がありません
PositiveGuy

9
@coffeeaddict:ええと、MSはデフォルトでWCFの使用に微妙に影響を与えようとしていると思います-本当に決まっている場合は古いスタイルのASMXのみです:-)
marc_s

27
Alt + PrtScnを使用している場合、現在アクティブなウィンドウのみのスナップショットを撮ることができます。これにより、表示したいものだけを手動で切り抜く必要がなくなります:o)
Ernest

それには、コンピューターに.NET 2.0も必要ですか?または、.NET 4.0は.NET 2.0ベースの「Web参照」テクノロジーを処理できますか?.NET 4.0アプリケーションで「Webリファレンス」としてSOAP Webサービスをデプロイしているので、知りたいのですが。
コンピュータユーザー

1
@sparkyShorts:はい。
marc_s 2017年

9

私があなたの質問を正しく理解した場合:

WCFサービス参照の代わりに.net 2.0 Webサービス参照を追加するには、プロジェクトを右クリックして[サービス参照の追加]をクリックします。

次に、ダイアログの左下にある[詳細...]をクリックします。

次に、次のダイアログの左下にある[Web参照を追加...]をクリックします。

これで、探しているような通常のSOAP Web参照を追加できます。


それには、コンピューターに.NET 2.0も必要ですか?または、.NET 4.0は.NET 2.0ベースの「Web参照」テクノロジーを処理できますか?.NET 4.0アプリケーションで「Webリファレンス」としてSOAP Webサービスをデプロイしているので、知りたいのですが。
コンピュータユーザー

4

サービス参照を追加すると、WCFクライアントを作成できます。これを使用して、適切なバインディングを使用することで、通常のWebサービスと通信できます。Web参照を追加すると、Webサービス(SOAP)参照のみを作成できます。

WCFの準備ができていないことが確実である場合(本当に理由がわからない場合)、通常のWebサービス参照を作成する必要があります。


3
WCFは初心者には簡単ではないためです。さらに、上司が私をそこに移動させないのが本当の理由です。これはコードであり、ここで実行されます。あなたがそのような状況にあるとき、私はそれについて何もすることができません。
PositiveGuy

7
@coffeeaddict私とあなたの上司は誤った情報を持っていると思います。どちらのタイプの参照でも、サービス操作を呼び出すメソッドを提供するクラスが作成されます。「サービス」参照によって作成されたクラスが、たまたまMicrosoftがWCFと呼ぶいくつかのテクノロジーの一部であると見なしているライブラリにある基本クラスから継承することはどのように関連していますか?
ダニエルプラット

1
それには、コンピューターに.NET 2.0も必要ですか?または、.NET 4.0は.NET 2.0ベースの「Web参照」テクノロジーを処理できますか?.NET 4.0アプリケーションで「Webリファレンス」としてSOAP Webサービスをデプロイしているので、知りたいのですが。
コンピュータユーザー

3

結局、どちらも同じことをします。コードにはいくつかの違いがあります。Webサービスはプロジェクトのルート名前空間を追加しませんが、サービスリファレンスはプロジェクトの名前空間にサービスクラスを追加します。ServiceSoapClientクラスは重要ではありません異なる命名し、取得します。TFSを使用する場合は、サービス参照を使用した方がいいでしょう。ソース参照を使用すると、より効果的に機能するからです。どちらもSOAPプロトコルで動作します。

Service Referenceは新しいので、より適切に保守されるため、Service Referenceを使用する方が良いと思います。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.