5

別のサーバーにあるが、ドキュメント全体に「localhost」がハードコードされている WSDL ファイルを解析しようとしています。

私がそれを取得すると、マシンで何も実行されていないため、明らかにプログラムは「接続が拒否されました」と不平を言います。

私の質問は次のとおりです。webproxy ( fiddler など) を使用して、それらの localhost 要求を他のサーバーにリダイレクトして、WSDL 参照が完全になるようにすることは可能ですか?

:-/

ありがとう

ps リモート "wsdl" はいつでも修正できましたが、担当者は来週までここにいるので、今日から作業を開始したいと思います。

4

4 に答える 4

6

Fiddler をマシンからのプロキシとして使用し、WSDL を書き換えて localhost を正しいマシン名に変更することができます。

FiddlerScript CookBookには、この種のスクリプトの書き方の例があります。そのページに移動し、「すべての DIV タグ (および DIV タグ内のコンテンツ) を削除する」を検索します。localhost に一致するように正規表現を変更し、使用するマシン名に置換を設定するだけです。

于 2009-06-13T20:15:19.540 に答える
1

If you have SSH access to the machine, you should be able to use SSH port forwarding to accomplish this. I'm assuming you're using Windows (based on the C# tag), so you can use Putty as explained here: Using port forwarding with PuTTY. Just follow those instructions to forward the desired port on "localhost" to the server that serves the WSDL.

Alternatively, if you're on a *nix based machine or a Mac, use SSH w/ the following command:

ssh -L PORTYOUWILLUSE:localhost:PORTONSERVER username@serverhostname

For example, if the WSDL were served on port 80, you could do

ssh -L 80:localhost:80 username@server

Once you're logged in (with either method), any requests to localhost on port 80 will be rerouted to the server.

于 2009-06-12T23:03:50.173 に答える
0

これを達成する方法はいくつかありますが、長期的な解決策として特に堅牢なものはありませんが、開発者が戻ってくるまで一時的なものが欲しいと言っています.

ドメインの後のすべてが一致する場合 (リモート URL が localhost の URL と同じ場合)、hosts ファイルの localhost エントリを編集できます。

system32\drivers\etc で、「hosts」ファイルをデスクトップにコピーします。メモ帳で開き、次の行を変更します。

127.0.0.1   localhost

IP アドレス (127.0.0.1) をリモート ドメインに変更します。次に、hosts ファイルを etc ディレクトリにコピーします。(注: このファイルを管理者またはその他の方法で直接編集することはできません)。

リモート Web サービスに複数のドメインがある場合、IIS では、"localhost" への要求を処理するように Web サイトを変更する必要があります。これは少し奇妙に思えるかもしれませんが、マシンがサーバーの IP アドレスを指定しますが、要求ドメインを "localhost" として指定します。IIS で Web サイトを右クリックしてプロパティを選択し、その Web サイトでサポートされている HTTP ヘッダー値のリストにドメイン "localhost" を追加します。IP アドレス経由でアクセスする場合に IIS の Web サイトがコンテンツを提供する場合は、これらすべてを無視できます。その単一の IP アドレスが複数の Web サイト間で共有されている場合 (通常はそうです)、IIS は "localhost" を検索しようとして、どの Web サイトに転送するかを見つけることができないため、"Bad hostname" エラーが発生します。へのリクエスト。

もう 1 つの可能性は、Proxomitronと呼ばれるパーソナル プロキシ サーバーを使用することです。少し古く、もう開発されていませんが、セットアップが非常に簡単で、非常に安定しています。

インストールしたら、それを開いて「構成」をクリックします。リッスンするポートを 80 に変更します。次に、リダイレクト ルールを作成する必要があります (実際にはリダイレクトではなく、URL の書き換えです)。独自のリダイレクトを追加する方法を理解するには、ドキュメントをざっと読む必要がありますが、アプリには多数のサンプルが付属しています。探しているルールは RDIR です。

$RDIR( ) はより卑劣で、ブラウザに通知せずに Proxomitron で接続をリダイレクトします。これは、実際には別の場所に移動しているときに、ブラウザにある場所に移動していると認識させたい場合に便利です。

于 2009-06-13T00:09:00.110 に答える
0

WSDL を解析する数分間だけ変更したい場合は、HOST ファイルを変更して、"localhost" をリモート IP アドレスに向けることができる場合があります。Windows VISTA/XP では、hosts ファイルは「C:\Windows\System32\drivers\etc」にあります。

于 2009-06-13T00:01:43.780 に答える