0

今日、Windows Azure Web サイトで最初の Web サイトをリリースしました。この Web サイトから、HTTPWebRequest を使用して外部 RSS フィード (https://picasaweb.google.com/) からコンテンツを取得しようとしています。

MVC コントローラーから次のメソッドを実行し、結果の RSS XML をモデルに入力します。

    private static string HttpGet(String url)
    {
        HttpWebRequest req = WebRequest.Create(url) as HttpWebRequest;
        String result = null;
        using (HttpWebResponse resp = req.GetResponse() as HttpWebResponse)
        {
            StreamReader reader = new StreamReader(resp.GetResponseStream());
            result = reader.ReadToEnd();
        }
        return result;
    }

これをテストしたとき、これは私のローカル マシンからは正常に動作しますが、サイトが Windows Azure Web サイトにアップロードされると、ページの結果は次のようになります。

リクエストの処理中に申し訳ありませんが、エラーが発生しました。

私の推測では、Web サーバーがデータセンター内からポート 443 要求を行うことができるように、ファイアウォール ポートを開く必要があると思いますが、これを行う場所や方法が見つかりません。

どんなアイデアでも大歓迎です。

更新:
元の想定は正しかったと思います。Azure 内から SSL 要求を行うことができないようです。以下のスタックトレースは次のとおりです。

[WebException: The request was aborted: Could not create SSL/TLS secure channel.]
   System.Net.HttpWebRequest.GetResponse() +6115603
   Alien.Models.PicassaWebReader.HttpGet(String url) +61
   Alien.Models.PicassaWebReader.GetPicassaWebFeed() +17
   Alien.Controllers.PhotosController.Index() +14
   lambda_method(Closure , ControllerBase , Object[] ) +62
   System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) +17
   System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +208
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +27
   System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +55
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +263
   System.Web.Mvc.<>c__DisplayClass17.<InvokeActionMethodWithFilters>b__14() +19
   System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +191
   System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +343
   System.Web.Mvc.Controller.ExecuteCore() +116
   System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +97
   System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext) +10
   System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +37
   System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +21
   System.Web.Mvc.Async.<>c__DisplayClass8`1.<BeginSynchronous>b__7(IAsyncResult _) +12
   System.Web.Mvc.Async.WrappedAsyncResult`1.End() +62
   System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +50
   System.Web.Mvc.SecurityUtil.<GetCallInAppTrustThunk>b__0(Action f) +7
   System.Web.Mvc.SecurityUtil.ProcessInApplicationTrust(Action action) +22
   System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +60
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result) +9
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +8969201
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +184

この質問は、 http ://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/622f0dbc-bbfd-4d3e-b344-148a79ddeedc にも投稿しました。

4

3 に答える 3

1

SSL証明書は有効ですか?

プログラムで無効な SSL 証明書を受け入れる方法

于 2012-07-06T21:18:51.747 に答える
0

読んでいる RSS フィードの URL を Https から Http リンクに変更すると、すべてうまくいきます。幸いなことに、picasaweb はその側で https にリダイレクトするだけなので、すべてうまく機能します。

コードが実際に SSL を使用できるようにするためにこれを解決する方法を知りたいと思っていますが、当面の間、これは解決されています。

于 2012-07-10T08:18:47.930 に答える
0

アウトバウンド HTTP/HTTPS リクエストを問題なく作成できるはずです。ファイアウォールの変更は必要ありません。エラーから詳細情報を取得できますか? あなたが見ることができる例外はありますか?フレンドリーなエラー メッセージ (死のイエロー スクリーンを表示) を少なくとも一時的にオフにすると、役立つかもしれません。

于 2012-07-06T20:32:48.550 に答える