無料のWebサービス http://www.webservicemart.com/uszip.asmx を使用するシンプルなWinFormsアプリを作成しました。しかし、このアプリはエラーでサービス操作を使用できません:
リモートサーバーが予期しない応答を返しました:(407)プロキシ認証が必要です(ISAサーバーは要求を満たすために承認が必要です。Webプロキシサービスへのアクセスが拒否されました)
プロキシを作成してサービス操作をトリガーするコード:
ChannelFactory<ServiceReference1.USZipSoap> proxy = new ChannelFactory<ServiceReference1.USZipSoap>("USZipSoap");
ServiceReference1.USZipSoap client = proxy.CreateChannel();
string str = client.ValidateZip("12345");
MessageBox.Show(str);
これは私の会社のネットワークの問題ですか、それとも webservicemart.com ?</ b>
設定ファイルの変更、カスタムバインディングの作成などに関する多くの情報をグーグル検索しましたが、基本的な理解が不足しているように感じます...
このエラーが約ISA社内ネットワークのサーバーである場合、外部設定の使用を制限しないために、サーバーにどのような構成を行う必要があるかISAサーバーウェブサービス?
バインディング構成で、useDefaultWebProxy
がtrueに設定されていることを確認してください-IEで見つけた構成を使用します。構成ファイルに次のスニペットを追加して、デフォルトで資格情報がプロキシサーバーでの認証に使用されるようにします。
<system.net>
<defaultProxy useDefaultCredentials="true" />
</system.net>
これは私のために働きました... 10.1.0.50とポート番号をあなたのプロキシサーバーのIPで置き換えます
<system.net>
<defaultProxy useDefaultCredentials="true">
<proxy usesystemdefault="False" proxyaddress="http://10.1.0.50:8080" bypassonlocal="True" />
</defaultProxy>
</system.net>
社内のすべてのトラフィックがプロキシ経由でリダイレクトされているようです。 IEからWebサービスを参照して、そのwsdlを確認し、テストページを呼び出して結果を確認できます。その場合は、以下のセクションをweb.configに追加してみてください。
<system.net>
<defaultProxy>
<proxy proxyaddress="<your proxy address>" bypassonlocal="true" />
</defaultProxy>
</system.net>
プロキシアドレスは、IEの設定から確認できます。
注:別の環境に移動する場合は、同じ設定であることを確認する必要があります。それ以外の場合は、上記の設定を削除する必要があります。
サービスのweb.configを設定して、 Internet Explorerで定義されているプロキシ設定 の使用を許可できます。
いつか将来。
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;