0

ついにWeb サービスを.Net 1.1 から .Net 2.0/3.5 にアップグレードしました。これらの Web サービスを呼び出すクライアントの 1 つは、Windows サービスとして実行されます。お客様のサイトでサーバーをアップグレードした後、しばらくの間 Windows サービスがアップグレードされない可能性があります。

.Net 2.0 Web サービスをマッサージして、.Net 1.1 クライアントからの呼び出しを正しく処理することはできますか? テスト環境で、.Net 1.1 クライアントから .Net 2.0 Web サービスに接続すると、IIS から 401.1 エラーが発生します。Web サービスは匿名アクセスに設定されています。.Net 2.0 クライアントから .Net 2.0 Web サービスに接続する場合、同じ認証情報が機能します。

ご協力いただきありがとうございます、

-コリン-

4

4 に答える 4

2

Webサービスは、プラットフォームに依存しないことを目的としています。Webサービスが適切に作成されていれば、SOAP 1.1をサポートするプラットフォーム上のすべてのクライアントが、それを利用できるはずです。

これが失敗する可能性がある1つの場所は、サービスが.NETに固有のタイプを返したり受け取ったりする場合です。たとえば、DataSetを送受信する場合、問題が発生する可能性があります。DataSetは、.NETだけでなく、.NETの特定のバージョンにも固有です。.NET1.1と.NET2.0の間でXMLおよびXMLシリアル化の領域で多くの変更が行われ、最終的にはそれらの問題の1つが発生する可能性があります。

しかし、私はそれらのどれもあなたに401エラーを与えるべきではないと思います。イベントログを調べて、そのエラーについて何か面白いことが書かれていないかどうかを確認します。

于 2010-05-07T00:18:01.490 に答える
1

サービスによって異なります。.NET 2.0サービスの場合:

  • SOAP1.1をサポートするように構成されています
  • WSE 3.0を使用しません(WSE 2.0はOKです)
  • null許容型を使用しません(.NET 1.1ではサポートされていません)
  • プリミティブまたはPOCOクラスのみを受け入れて返します(noDataSetsなど)

その後、互換性があります。

401.1エラーが発生しても、同じマシンから他のクライアントに接続するのに問題がない場合、サービスはSOAPヘッダーに何かを予期していると思います。 それが期待していること、私はあなたに手に負えないことを言うことはできません。サービスコード/構成を確認する必要があります。

または、Webサーバーの構成の問題である可能性があります。接続できる/接続できない特定の環境についての詳細がなければ、言うのは難しいです。

于 2010-05-07T00:20:20.100 に答える
0

@Aaronaughtが書いたように、エラーは、サービスがSOAPヘッダーに何かを期待していることである可能性があります。これを分析するには、生成されたwsdlを確認する(Web参照のすべてのファイルを展開する)か、svcutil.exeを介してメタデータをダウンロードします。これにより、Webサービスの呼び出しに使用されるプロキシが生成されます。
そうすれば、プロキシをより細かく制御できます。

svcutilの使用方法の例:

コマンドプロンプトから: svcutil http:// service / metadataEndpoint

于 2010-05-07T12:16:45.613 に答える
0

ご回答ありがとうございます。彼らは、それが機能していない理由をさらに診断するのに役立ちました. すべてが機能し、401.1 応答が誤解を招く (ただし正しい) ものであることが判明しました。私たちの問題は、Web サービスのディレクトリ構造の変更が原因でした。もっと注意を払っていれば、この質問をする前に気がついたかもしれません。

私の質問に答えるには: はい。.Net 1.1 クライアントは .Net 2.0 Web サービスを呼び出すことができ、通常、追加の構成は必要ありません。URI が正しいことを確認してください。

于 2010-05-07T16:45:31.173 に答える