c# - 在 Azure 服务总线 SendAsync 方法上捕获异常时遇到问题

标签 c# azure azureservicebus

我正在尝试使用以下代码来设置故障条件,即没有可用的网络路径,因此代码根本无法发送到服务总线。我知道这一点是因为我在测试时禁用了网络端口。

尽管如此,我仍然对代码的异步性质有疑问。我不知道在控制台应用程序中如何附加一些东西来注销我知道应该生成的异常。

如何查看异常文本?

        public async Task TestQueueExists()
    {    
        _queueClient = new QueueClient(AppSettings.McasServiceBusConnectionString,
            AppSettings.ListServSyncQueueName);
        Logger.Information(
            $"Queue Created to: {_queueClient.QueueName} with RecieveMode: {_queueClient.ReceiveMode}");
        try
        {
            await _queueClient.SendAsync(new Message("Test".ToUtf8Bytes()));       
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
            throw;
        }

    }

最佳答案

我遇到的问题是我使用的是控制台应用程序,并且控制台应用程序开箱即用地运行同步。我必须修改我的 Main 以返回 Task 并使用 async 来捕获异常,这是有道理的。

internal class Program
{
    static async Task Main(string[] args)
    {
         [..]
    }
}

关于c# - 在 Azure 服务总线 SendAsync 方法上捕获异常时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48026671/

相关文章:

azure - 如何配置 Azure 通知中心以使用 APNS token 身份验证模式?

azure - 通过 Visual Studio 在 Azure Functions 中使用 ServiceBus

azureservicebus - 在 C# 中将 Azure 服务总线队列迁移到主题和订阅

c# - 检查一个对象是否是一个集合类型,不管那个集合是什么类型?

c# - 如何将 EF 属性转换为 SQL Server 的计算列?

c# - EqualityComparer<T>.Default 不够聪明

c# - 如何使用 DotNetOpenAuth 向任何邮件提供商进行身份验证?

azure - 使用 for_each 循环创建的多个子网的值的输出

azure - 如何删除具有 RecoveryServicesVaults 和备份项目的 Azure 资源组

azure - Windows Azure 角色间通信