2009-06-30 10 views
3

私はかなり混乱する問題があります。私は追加することに取り組んでいる同じのWin32アプリケーションから直接呼び出されると、他のWebアプリケーション古いプロキシ設定を使用したWebサービス?

の異なるセット -

のWebサービスA - のWin32アプリケーションによって直接呼び出され、および様々な他のWebアプリケーション
WebサービスB BをAに参照することで、Bが提供する機能をAに手動で書き直し/再統合することなく使用することができます。私は自分のPCにAの開発コピーを作成しています。リモートサーバー(テストサーバーは当社のホスティングプロバイダーのインターネット経由でアクセスされます)

私は自分のコードをテストの準備ができていると信じていますが、毎回私は私のローカルコピーでそれをテストするために行く、私は次のエラーを取得します。ターゲットマシンが積極的に10.1.X.XXそれを拒否したため

接続なしで作ることができる:8080

at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 
at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) 
at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) 

エラーメッセージに記載されている内部IPは、私たちの古いBorderManagerのゲートウェイました。それはもはや使用されていません、私はすべてのMachine.Configs、Web.Configs、レジストリエントリをチェックしましたが、そこにリストされているIPのために2MB以下で私のPC上の全ファイルの全文検索を行っています。私はインターネットオプション接続の設定をもう一度チェックしましたが、それはグループポリシー会社によって管理されています。私は、IPが現在適用されているポリシーのどこにでもリストされていないことを確認するためにネットワーキング担当者を呼びました。

これを使用するコードをステップオーバーしようとしているときと、上記の例外が表示されている場合を除いて、どこでも見つけることができません。

私はWebサービスBを使用するために持っているコードは次のとおりです。

Dim oZip As New ZipTerr.ZIPTerr 
oZip.Url = "https://test.test.com/ZIPTerr/ZIPTerr.asmx" ' This really shouldn't be hardcoded... 
oZip.PreAuthenticate = True 
oZip.Credentials = New System.Net.NetworkCredential("username", "password") 
aCity = oZip.GetCities(pstrZip, Date.Now()) 

それは、上記のエラーとoZip.GetCities()の呼び出しに失敗しました。エラーメッセージのIPは、私たちのローカルネットワークから発信されたことを示すものではありません。10. *プライベートIPですが、テストサーバーは公開されている有効なライブアクセス可能なIPを持っています。

更新: 両方のWebサービスは、コードがサービスとして実行されているので、基本的なSystem.Netライブラリが、この場合、インターネット設定値を使用しない、.NET 2.0

+0

に役立ちます。 BorderManagerゲートウェイがどのように機能していたかを知ることをお勧めします。たぶんその部分はまだまだです。ところで、私はあなたが "Win32"ではなく "WinForms"を意味すると思う。 –

答えて

4

です。

MSは、.configファイルに特定の設定がない場合に、そのプロキシ設定がどのように導出されるかについて、少しは概略的です。ここで

しようとするいくつかのものがあります: -

1つのコマンドライン使用: -

ProxyCfg -d 

これはちょうどそのような中で使用されるように設計されたのWinHTTPコンポーネント(で使用される任意のプロキシ設定を削除します.NETの出現前のコードによるサーバー設定)。

ProxyCfg -u 

現在のユーザーのインターネットプロキシ設定を、WinHTTPが使用するシステム全体の設定にコピーします。

<system.net> 
    <defaultProxy enabled="true"> 
    <!-- if above set to true configure below accordingly if false delete below--> 
    <proxy proxyaddress="http://127.0.0.1:8888" bypassonlocal="False"/> 
    </defaultProxy> 
</system.net> 
+0

Web.configのスニペットを使用し、enabled = "false"に設定することで修正できました。ご協力いただきありがとうございます! –

+1

これは私のために修正されましたが、いくつかの注意点があります:ProxyCfgは廃止され、win7のnetsh winhttp、http://technet.microsoft.com/en-us/library/cc731131%28WS.10%29.aspx# BKMK_3 - 私はプロキシを使用するためにすべてを変更したフィドラー(http logger)をインストールした後、この問題がありました。私はcontrolPanel>インターネットオプション>プロキシを削除し、 'LAN設定を自動的に検出する'を選択し、コマンドラインで「netsh winhttp import proxy source = ie」を実行してトリックを実行しました。 – Despertar

0

最良推測:

エラーがあなたのマシン上にないコードから来ているのどちらか - :

いっそのプロキシは、呼び出し元のアプリケーションのweb.configファイルに自分自身を設定構成します。あなたのマシンでWebサービスAとBが動作していますか?

または、dllのソースがマシン上にないdllでコード化されています。

希望これは限り.NETが懸念している、ことをこのURLのためにnoplace他にあります

シラーズ

関連する問題