0

Windows Azure プロジェクト (c#) に奇妙な問題があります

私の C# Azure アプリは、Exchange マネージ API を使用して、Web 経由で Exchange 2010 サーバーと通信します。

Exchange 2010 自体は Azure VM で実行されています。ポート 443 で Exchange EWS Web サービスを利用できるように、ファイアウォールを開放しました。

Azure Emulator でローカルに実行すると、アプリは完全に動作します。アカウント内のすべてのフォルダーとメールを表示できます。Web を介して Exchange VM と完全に通信します。

ただし、アプリをステージング環境に公開するとすぐに、アプリが正しく動作しません。

サーバーへの最初の呼び出しは機能しますが、その後、次のメッセージが表示されます。

「接続先が一定期間後に適切に応答しなかったため、接続の試行に失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました [IPADDRESS]:443」

私が言うように、それは初めて機能します (必要なコンテンツを含むインデックス ページが表示されます) が、そのページを更新すると、そのエラーが発生します。

したがって、ファイアウォールの問題ではないと思います。それ以外の場合は、最初は機能しません。

それは私を絶望に駆り立てています-何が悪いのかわかりません!

お役に立てれば幸いです。

サイモン。

[編集] スタック トレースは次のとおりです。

[SocketException (0x274c): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond]
   System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) +136

[IOException: Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.]
   System.Net.Security._SslStream.EndRead(IAsyncResult asyncResult) +7911429
   System.Net.TlsStream.EndRead(IAsyncResult asyncResult) +2691856
   System.Net.Connection.ReadCallback(IAsyncResult asyncResult) +79

[WebException: The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.]
   System.Net.HttpWebRequest.GetResponse() +7864676
   Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(HttpWebRequest request) +130

[ServiceRequestException: The request failed. The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.]
   Microsoft.Exchange.WebServices.Data.ServiceRequestBase.GetEwsHttpWebResponse(HttpWebRequest request) +447
   Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(HttpWebRequest& request) +647
   Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.Execute() +72
   Microsoft.Exchange.WebServices.Data.ExchangeService.BindToFolder(FolderId folderId, PropertySet propertySet) +201
   Microsoft.Exchange.WebServices.Data.CalendarFolder.Bind(ExchangeService service, WellKnownFolderName name) +83
4

1 に答える 1

0

2つ目のクラウドサービスを作成し、アプリを本番環境とステージング環境の両方にデプロイしました。アプリは両方で完璧に動作します!

したがって、私の理論では、何らかの理由で、ExchangeWebサービスがIPアドレスに基づいてステージングアプリをブロックしています。しかし、ファイアウォールのルールはありません!

さて、これは実際には「なぜ」または「何が起こっているのか」には答えませんが、これが私が行っている解決策です:

Azureからクラウドアプリを削除して、完全に再デプロイします。

これには、新しいIPアドレスを生成する効果があり、突然、ステージング領域が再び機能します。

申し訳ありませんが、これ以上の方法は考えられませんでしたが、解決策は解決策です。

于 2012-09-15T22:47:48.737 に答える