- PR -

HTTP ステータス 407: Proxy Access Deniedが発生

1
投稿者投稿内容
ダソヌ☆マソ
会議室デビュー日: 2008/05/19
投稿数: 7
投稿日時: 2008-05-19 18:37
はじめまして。こういったBBSでの書き込みは初めてで勝手が違っていたらすいません。

現在、.NET 2.0 C#で開発したWebService(asmx)を参照して動作する
クライアントWindowsアプリケーション(こちらもC#)があるのですが、
クライアントexeからWebサービスのメソッドを呼ぶときに、
「HTTP ステータス 407: Proxy Access Deniedで要求が失敗しました。」
というメッセージボックスが突然表示されて、クライアントアプリケーションが
ハングアップして動作続行不可能になってしまいます。

これが不思議なのが、クライアントのOSでローカルのアカウント
(例:Administrator)でこのクライアントアプリケーションを動作させると
407: Proxy〜は全く発生しません。

ドメインのユーザーとしてログインしている状態で
このクライアントアプリケーションを動作させると
407: Proxy〜が発生します。

困ったことに、ドメインでログインしてVisual Studio 2005でデバッグトレースしても、
必ずあるステップでハングする訳ではないので原因がつかめず困っています。

ドメインにログインしているときだけ発生しているので、
何かしらのセキュリティレベルの違いだとは思うのですが。。。

有識者の方がいらっしゃいましたら、ご助言いただければ幸いです。

れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2008-05-20 09:59
Proxy Access Deniedということは、
プロキシサーバーへの接続で権限がないといっているのですよね。

ということはおそらくプロキシサーバーを使っているはずですが、
その情報が示されていません。

プロキシを使っていないのにそのエラーがでるのか、
使っていてエラーがでるのか、それによってだいぶ対応も変わります。

プロキシサーバーを使っているのか、
使っているとしたら何処が作った何という製品で何版なのか、
確認しましょう。

ウィルス対策ソフトや通信速度向上ソフトなども
プロキシをインストールすることがあります。
ドメイン、LANレベルで入っている場合もあります。
kom1
会議室デビュー日: 2004/04/14
投稿数: 9
投稿日時: 2008-05-22 15:23
プロキシサーバからの応答で拒否されています。

ローカル環境で使っているつもりでも、会社からIEでインターネット
接続設定をしていると、会社のプロキシサーバを経由してしまいます。

set proxy:アカウント
set password:パスワード

等で強引にプログラム側に組み込むか、
IE(ブラウザ)の設定で「LANにプロキシサーバを利用する」の
チェックを「はずす」かで直りませんか?

参考:
http://www.suzu841.com/apache.html
HTTPステータスコードというリンクをクリックして下さい
ダソヌ☆マソ
会議室デビュー日: 2008/05/19
投稿数: 7
投稿日時: 2008-05-23 12:01
れい様、kom1様、
ご親切にどうもありがとうございます。

無条件に拒否されるならなんとなく察することができたのですが、
何回かwebserviceを呼ぶとエラーがでるという
「よく発生するが、常に確実100%ではない」
現象なので不思議でした。

ご教授いただいたことを試してみたいと思います。
また結果をポストしたいと思います。
ダソヌ☆マソ
会議室デビュー日: 2008/05/19
投稿数: 7
投稿日時: 2008-05-23 19:43
kom1様、
IEの設定で「LANにプロキシサーバを利用する」
が変更できないように制御されており、この策は無理でした。

set proxy:アカウント
set password:パスワード

とは具体的に何のコマンドでしょうか?
コマンドプロンプトの環境変数のことでしょうか?
kom1
会議室デビュー日: 2004/04/14
投稿数: 9
投稿日時: 2008-06-02 12:13
先の方法は、perlのインストーラで使用したときの設定だったと記憶しております。
私もソフトでプロキシ経由で外に出るものを作成したことがありません。

お詫びとして下記情報提供いたします。参考になれば幸いです。

MSDNのプロキシ利用方法に関する記述
http://msdn.microsoft.com/ja-jp/library/system.net.httpwebrequest.proxy(VS.80).aspx

WinInet API で HTTP 上のデータを読む(β版)
http://www.geocities.co.jp/SilkRoad/4511/vb/wininet.htm
kom1
会議室デビュー日: 2004/04/14
投稿数: 9
投稿日時: 2008-06-10 17:42
VC6.0付属MSDNの(TEAR : インターネットからの HTML ページの取得)という
サンプルで、下記のようにすると、プロキシ経由でインターネットに接続でき
HTMLページ情報を取得できました(MSDNライブラリの2001年10月CD1)。

tear.cpp の 下記を変更 120行付近 こうしないとwininet.hとの整合性が
ないのでコンパイルできませんでした。

//dwAccessType = GATEWAY_INTERNET_ACCESS;
dwAccessType = CERN_PROXY_INTERNET_ACCESS;

// check to see if this is a reasonable URL 配下に以下の変数追加(210行付近)
CString strUserName = "プロキシ登録ユーザ名";
CString strPassword = "プロキシパスワード";

接続するところ(230行付近)を以下のように変更
//pServer = session.GetHttpConnection(strServerName, nPort);
pServer = session.GetHttpConnection(strServerName,
nPort,strUserName,strPassword);

=====テスト結果です。======

D:\temp\http\tear\Release>tear http://***.com/ /D 
(申し訳ありません、先ほど実在する他のサイトアドレスを勝手に使用したため修正します)
TEAR - Tear a Page Off the Internet!
Version 4.2 - Copyright (C) Microsoft Corp 1997

Status Code is 200
<html>

<head>
<meta http-equiv="Content-Type"
content="text/html; charset=x-sjis">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<title>Webのお勉強</title>
</head>
<body bgcolor="#CFFEDF">
<!-- St-HP-H -->
以下省略・・・


[ メッセージ編集済み 編集者: kom1 編集日時 2008-06-10 17:57 ]
ダソヌ☆マソ
会議室デビュー日: 2008/05/19
投稿数: 7
投稿日時: 2008-06-13 13:00
その後のレポートですが、
こちらの記事にあった
「アプリケーション構成ファイルにプロキシの設定を記述する」
http://dobon.net/vb/dotnet/internet/useproxy.html

を適用してみて様子を見ていますが今のところ解消できたようです。
それにしてもプログラムのコードにはプロキシ処理は記述していないのに、
設定ファイルに記述するだけで解消できる。
というのはなんとも不思議です。
1

スキルアップ/キャリアアップ(JOB@IT)