【发布时间】:2017-08-07 15:02:50
【问题描述】:
这个异常被抛出了,我显然没有办法捕捉它:
无法建立连接,因为目标机器主动拒绝了它 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(布尔连接失败, Socket s4, Socket s6, Socket&socket, IPAddress&地址, ConnectSocketState 状态、IAsyncResult asyncResult、Exception& 例外)+621[WebException:无法连接到远程服务器]
System.Net.HttpWebRequest.GetResponse() +1724
Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy 策略, OperationContext operationContext) 中 c:\程序文件 (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:699[StorageException:无法连接到远程服务器]
Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync(RESTCommand`1 cmd, IRetryPolicy 策略, OperationContext operationContext) 中 c:\程序文件 (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Core\Executor\Executor.cs:604 Microsoft.WindowsAzure.Storage.Blob.CloudBlobContainer.CreateIfNotExists(BlobContainerPublicAccessType accessType、BlobRequestOptions requestOptions、OperationContext operationContext) 在 c:\Program Files (x86)\Jenkins\workspace\release_dotnet_master\Lib\ClassLibraryCommon\Blob\CloudBlobContainer.cs:233 C3.Code.Controls.Application.Storage.Blob.Blob.GetContainer(字符串 容器名称)在 ...Blob.cs:104
C3.Code.Controls.Application.Storage.Blob.Blob.AddBlob(字符串 D:\Dropbox 中的容器名称、字符串 blobReference、字节 [] 字节) (Scirra Ltd)\汤姆\C3 网站\C3Alpha2\Code\Controls\Application\Storage\Blob\Blob.cs:87
D:\Dropbox (Scirra) 中的 C3.Code.Callbacks.Application.ApplicationStart() Ltd)\Tom\C3 网站\C3Alpha2\Code\Callbacks\Application.cs:26
D:\Dropbox 中的 C3.Global.Application_Start(Object sender, EventArgs e) (Scirra Ltd)\Tom\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
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +360[HttpException (0x80004005): 无法连接到远程服务器]
System.Web.HttpRuntime.FirstRequestInit(HttpContext 上下文) +539
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext 上下文) +118 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest WR,HttpContext 上下文)+730
【问题讨论】:
-
这可能是你在VS中调试时的行为,VS中有异常设置,你需要调整一下
-
我有点困惑你删除了旧问题而不是编辑它。
-
你只是想抓住一个
HttpException,其他的都不会被抓住。我认为你的例外实际上是SocketException。 -
您是否尝试过捕获 WebException?
-
对不起@Mighty,我以为我已经解决了,所以不想浪费任何人的时间。原来我没有解决。
标签: c# asp.net exception exception-handling try-catch