- PR -

ASP.NETでのWEBサービス(Google)利用のWEBアプリの開発方法を教えてください。

1
投稿者投稿内容
ジーニ
常連さん
会議室デビュー日: 2002/08/27
投稿数: 21
投稿日時: 2002-08-27 09:34
ASP.NETで外部のWEBサービス(Google API)を利用しWEBアプリを開発しようとしています。
Windowsアプリの方では、うまくデータを取得できるのですが、WEBアプリにすると以下の
ようなエラーになります。Google APIだからかと思いましたが、他の公開されているWEBサー
ビスを利用しようとしても同じエラーになります。作り方が悪いと思うのですが、どなたか
同様の現象を経験されて解決された方がいれば教えてください。

'/googleSamp' アプリケーションでサーバー エラーが発生しました。

基になる接続が閉じられました : リモート名を解決できませんでした。.
説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.Net.WebException: 基になる接続が閉じられました : リモート名を解決できませんでした。.

ソース エラー:
行 82: [return: System.Xml.Serialization.SoapElementAttribute("return")]
行 83: public GoogleSearchResult doGoogleSearch(string key, string q, int start, int maxResults, bool filter, string restrict, bool safeSearch, string lr, string ie, string oe) {
行 84: object[] results = this.Invoke("doGoogleSearch", new object[] {
行 85: key,
行 86: q,

ソース ファイル : d:\inetpub\wwwroot\googlesamp\googlesearchservice.cs
行 : 84

スタック トレース:
[WebException: 基になる接続が閉じられました : リモート名を解決できませんでした。.] System.Net.HttpWebRequest.CheckFinalStatus() System.Net.HttpWebRequest.EndGetRequestStream(IAsyncResult asyncResult) System.Net.HttpWebRequest.GetRequestStream() System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) GoogleSearchService.doGoogleSearch(String key, String q, Int32 start, Int32 maxResults, Boolean filter, String restrict, Boolean safeSearch, String lr, String ie, String oe) in d:\inetpub\wwwroot\googlesamp\googlesearchservice.cs:84 googleSamp.WebForm1.Button1_Click(Object sender, EventArgs e) in d:\inetpub\wwwroot\googlesamp\webform1.aspx.cs:73 System.Web.UI.WebControls.Button.OnClick(EventArgs e) System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) System.Web.UI.Page.ProcessRequestMain()


バージョン情報 : Microsoft .NET Framework バージョン :1.0.3705.288; ASP.NET Version:1.0.3705.288
XeCl
会議室デビュー日: 2002/08/29
投稿数: 15
投稿日時: 2002-08-29 12:39
私も同様の問題で悩んでます.
ファイアウォールの問題なのですかね.
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1030&forum=7

Windows アプリであれば,
その Windows アプリを使用しているユーザの
(IE の) Proxy 設定が適用されますよね.
Web アプリの場合はどうなんですかね.

例えば:
ファイアウォールの中にサーバ in があります.
ファイアウォールの外にサーバ out があります.
Web サービス http://out/out.asmx
Web アプリ http://in/in.aspx から呼び出すとします.
Web アプリの利用者は in に POST データを送りますが,
そこに SOAP 的なやりとりはないですよね.
実際の SOAP 的なやりとりは,
in と out がやりとりするんですよね ?!
そこでファイアウォールを通過しなければなりませんが,
その PROXY 設定はどこの誰が設定するんですかね ?
(因みに in の Administrator の Proxy 設定では駄目でした)
ジーニ
常連さん
会議室デビュー日: 2002/08/27
投稿数: 21
投稿日時: 2002-08-29 13:56
XeClさん回答ありがとうございます。
ファイアウォールが問題なんですか?初耳でした。

私の方の現象では、自宅のADSLから動作させるとWEBアプリでも動きます
が、会社(ファイアウォールあり)でやるとだめでした。
PROXYの設定うんぬんなのでしょうか。

元々WEBサービスは、現状のインターネット環境に手を加えることが無いという
のがメリットといわれているのではないかと思います。
だれが、内情に精通されている方教えてください。
XeCl
会議室デビュー日: 2002/08/29
投稿数: 15
投稿日時: 2002-08-29 16:36
まじめに調べたら解決しました.
Web.Config に以下のように追加すると良いようです
(当方の環境で Web アプリが動作しました).

 <system.net>
  <defaultProxy>
   <proxy
    usesystemdefault = "false"
    proxyaddress = "http://proxy-in:8080"
    bypassonlocal = "true"
   />
   <bypasslist>
    <add address="http://out/" />
   </bypasslist>
  </defaultProxy>
 </system.net>
ジーニ
常連さん
会議室デビュー日: 2002/08/27
投稿数: 21
投稿日時: 2002-08-30 10:19
XeClさん 情報ありがとうございました。
私も同様にWeb.Configを修正したらうまくWEBアプリが動作
しました。 ほんとうに助かりました。
XeCl
会議室デビュー日: 2002/08/29
投稿数: 15
投稿日時: 2002-09-06 08:40
Microsoft の HOW-TO に同様の話題が載りました.
http://support.microsoft.com/default.aspx?scid=kb;ja;JP307220
未記入
会議室デビュー日: 2005/08/17
投稿数: 1
投稿日時: 2005-08-17 21:06
引用:

XeClさんの書き込み (2002-08-29 16:36) より:
まじめに調べたら解決しました.
Web.Config に以下のように追加すると良いようです
(当方の環境で Web アプリが動作しました).

 <system.net>
  <defaultProxy>
   <proxy
    usesystemdefault = "false"
    proxyaddress = "http://proxy-in:8080"
    bypassonlocal = "true"
   />
   <bypasslist>
    <add address="http://out/" />
   </bypasslist>
  </defaultProxy>
 </system.net>


私も同じ問題を抱えています。
開発環境は WinXP Pro, WebMatrixを使用し、プロキシクラスを作成しております。
自宅でADSLを経由でアクセスできますが、
会社に来るとだめになります。
上記を参照にweb.configの設定を追加しましたが、
うまくいきません。
Microsoft の HOW-TO に同様の話題を参考し、
machine.configの設定も追加しましたが、
それでもだめです。
ほかに考えられる原因はあるのでしょうか?
教えてください。

[ メッセージ編集済み 編集者: 未記入 編集日時 2005-08-17 21:10 ]
ロンロン
ベテラン
会議室デビュー日: 2004/01/08
投稿数: 58
お住まい・勤務地: TOKYO
投稿日時: 2005-08-26 01:02
引用:

    proxyaddress = "http://proxy-in:8080"


設定している串が
本当にポート番号8080でリッスンしているかどうか、
netsh diag connect ieproxyコマンドで確認してみてはいかがでしょうか
1

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