2017-03-16 4 views
0

のtry-catch C#で例外をキャッチすることはできません、と私は明らかにそれをキャッチする方法がありません:対象のコンピュータによって拒否されたためは、この例外がスローされている

接続が確立されていないことでした127.0.0.1 :10000

出典:

Line 102:   try 
Line 103:   { 
Line 104:    var blobClient = GetClient(); <-- throws here 
Line 105:    var container = blobClient.GetContainerReference(containerName); 
Line 106:    container.CreateIfNotExists(BlobContainerPublicAccessType.Blob); 

ソースファイル:... Blob.csライン:104

全体機能:

private static CloudBlobContainer GetContainer(string containerName) 
{ 
    try 
    { 
     var blobClient = GetClient(); 
     var container = blobClient.GetContainerReference(containerName); 
     container.CreateIfNotExists(BlobContainerPublicAccessType.Blob); 
     return container; 
    } 
    catch (HttpException ex) 
    { 
     Helpers.Error.Functions.RecordError(ex); 
     throw new HttpException(500, "Could not connect."); 
    } 
} 

GetClient()機能:

private static CloudBlobClient GetClient() 
{ 
    try 
    { 
     var account = CloudStorageAccount.Parse(Settings.Deployment.AzureConnectionString); 
     return account.CreateCloudBlobClient(); 
    } 
    catch (Exception ex) 
    { 
     Helpers.Error.Functions.RecordError(ex); 
     throw new HttpException(500, "Could not connect GetClient."); 
    } 
} 

スタックトレース:

【のSocketException(0x274d)ため いいえ接続が確立できませんでしたターゲットマシンが積極的にそれを拒否127.0.0.1:10000]
System.Net.Sockets.Socket.DoConnect(エンドポイントendPointSnapshot、 のSocketAddressのSocketAddress)520
System.Net.ServicePoint.ConnectSocketInternal(ブールconnectFailure、 ソケットS4、S6ソケット、ソケット&ソケットたIPAddress &アドレス、 ConnectSocketState状態たIAsyncResult asyncResult、例外& 例外)621

[WebException:リモートサーバーに接続できません]
System.Net.HttpWebRequest.GetResponse()1724
Microsoft.WindowsAzure。ジェンキンス\ワークスペース\ release_dotnet_master \ Libの\ ClassLibraryCommon \コア\キュータ\キュータ\ \プログラムファイル (x86の):Storage.Core.Executor.Executor.ExecuteSync Cで(RESTCommand`1 CMD、IRetryPolicy政策、のOperationContextのOperationContext)。 CS: Cで
Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 CMD、IRetryPolicyポリシー、のOperationContextのOperationContext):699

[リモートサーバーに接続できませんStorageException]: \ Program Files (x86)\ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClassLibraryCommon \ Core \ Executor \ Executor.cs:604 Microsoft.WindowsAzure.Storage.Blob.C loudBlobContainer.CreateIfNotExists(BlobContainerPublicAccessType アクセスタイプ、BlobRequestOptions requestOptions、のOperationContext のOperationContext)はC:\プログラムファイル (x86の)\ジェンキンス\ワークスペース\ release_dotnet_master \ Libの\ ClassLibraryCommon \ブロブの\ CloudBlobContainer.cs:233 C3.Code.Controls。 Application.Storage.Blob.Blob.GetContainer(String containerName)in ... Blob.cs:104
C3.Code.Controls.Application.Storage.Blob.Blob.AddBlob(String containerName、String blobReference、Byte [ C:\ Program Files \ Application \ Storage \ Blob \ Blob.cs:87
C3.Code.Callbacks.Application。Dll:\ DropboxのApplicationStart()(Scirra Ltd)\ Tom \ C3 Webサイト\ C3Alpha2 \ Code \ Callbacks \ Application.cs:26
D:\ DropboxのC3.Global.Application_Start(オブジェクト送信者、EventArgs e) (Scirra株)\トム\ C3ウェブサイト\ C3Alpha2 \ Global.asax.cs:30

[HttpException(0x80004005が):リモートサーバーに接続できません]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContextを コンテキスト、HttpApplicationアプリケーション)+534
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext、HttpContextコンテキスト、MethodInfo []ハンドラ)+186
System.Web.HttpApplication.InitSpecial(HttpApplicationState状態、 METHODINFO []ハンドラのIntPtr AppContextを、のHttpContextコンテキスト)175
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(のIntPtr AppContextを、のHttpContextコンテキスト)424
システム。 Web.Hosting.PipelineRuntime.InitializeApplication(のIntPtr AppContextを)+360

[HttpException(0x80004005が):リモートサーバーに接続できません]
System.Web.HttpRuntime.FirstRequestInit(のHttpContextコンテキスト)539
システム.Web.HttpRuntime.EnsureFirstReque stInit(のHttpContextコンテキスト) 118 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest WR、のHttpContextコンテキスト)730

+0

これはおそらくVSでデバッグ中の動作ですが、VSに例外の設定があります。それを調整する必要があります –

+0

私はあなたがそれを編集する代わりに古い質問を削除して混乱しています。 –

+1

あなたは 'HttpException'をキャッチしようとしていますが、それ以外は捕まえられません。例外は実際には私が思う 'SocketException'です。 – DavidG

答えて

2

あなたが投稿例外メッセージから:

[のSocketException(0x274d ):ターゲットマシンが積極的にそれを拒否したため、接続できませんでした127.0.0.1:10000]

これはです

catch (HttpException ex) 

だから、それがキャッチされていない:は、あなたのコードは、これは言っていないHttpExceptionけど。一般的なExceptionを使用してすべてをキャッチするか、キャッチするSocketExceptionに切り替えます。

+0

しかし、彼はすべての例外をキャッチし、それらをGetClientの 'HttpException'にラップします。 – Evk

+0

@Evk次に、別のコードを見ているかもしれません。スタックトレースは、例外が 'SocketException'であることを明確に示しています。 – DavidG

+0

はい、作成者はGetClientがスローし、OPがすべての例外をキャッチしてHttpExceptionを手動でスローするため、HttpExceptionをスローすることしかできないと主張しています。とにかくそれはすべての後にそれがスローするGetClientではないようだ。 – Evk

関連する問題