- - PR -
ASP.NETでのWEBサービス(Google)利用のWEBアプリの開発方法を教えてください。
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 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 | ||||
|
投稿日時: 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-29 13:56
XeClさん回答ありがとうございます。
ファイアウォールが問題なんですか?初耳でした。 私の方の現象では、自宅のADSLから動作させるとWEBアプリでも動きます が、会社(ファイアウォールあり)でやるとだめでした。 PROXYの設定うんぬんなのでしょうか。 元々WEBサービスは、現状のインターネット環境に手を加えることが無いという のがメリットといわれているのではないかと思います。 だれが、内情に精通されている方教えてください。 | ||||
|
投稿日時: 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-30 10:19
XeClさん 情報ありがとうございました。
私も同様にWeb.Configを修正したらうまくWEBアプリが動作 しました。 ほんとうに助かりました。 | ||||
|
投稿日時: 2002-09-06 08:40
Microsoft の HOW-TO に同様の話題が載りました.
http://support.microsoft.com/default.aspx?scid=kb;ja;JP307220 | ||||
|
投稿日時: 2005-08-17 21:06
私も同じ問題を抱えています。 開発環境は WinXP Pro, WebMatrixを使用し、プロキシクラスを作成しております。 自宅でADSLを経由でアクセスできますが、 会社に来るとだめになります。 上記を参照にweb.configの設定を追加しましたが、 うまくいきません。 Microsoft の HOW-TO に同様の話題を参考し、 machine.configの設定も追加しましたが、 それでもだめです。 ほかに考えられる原因はあるのでしょうか? 教えてください。 [ メッセージ編集済み 編集者: 未記入 編集日時 2005-08-17 21:10 ] | ||||
|
投稿日時: 2005-08-26 01:02
設定している串が 本当にポート番号8080でリッスンしているかどうか、 netsh diag connect ieproxyコマンドで確認してみてはいかがでしょうか |
1