从 Web api 向 Azure 服务总线队列发送消息

send message to azure service bus queue from web api

我正在尝试开始使用 Azure 服务总线队列。关注这篇文章 https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues 唯一的区别是我试图从网络 api.
中执行此操作 我得到的错误是: 无法建立连接,因为目标机器主动拒绝 40.84.xxx.xx:443

如有任何帮助或指点,我将不胜感激!

注意:按照上述指南,控制台应用程序运行良好。

7 月 24 日更新,这是我的操作方法中的代码:

   try
        {
            var connectionString =
                "Endpoint=sb://xxxxx-test.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=shared_access_key";
            var queueName = "testqueue1";

            var client = 
    QueueClient.CreateFromConnectionString(connectionString, queueName);

            var message = new BrokeredMessage(eventMessage);
            client.Send(message);
        }
        catch (Exception e)
        {
          //log exception
        }

7 月 25 日更新。我能够通过在 web.config:

中启用 defaultConfig 条目来使其工作
 <system.net>
   <defaultProxy enabled="true"/>
 </system.net>

No connection could be made because the target machine actively refused it 40.84.xxx.xx:443

请检查出站443端口是否被防火墙屏蔽

Note: Console app works just fine following the above guide.

服务总线连接模式的默认值为自动检测。它将根据自动检测机制自动在 Tcp 和 Http 模式之间进行选择,该机制会探测任一连接选项是否适用于当前网络环境。它可能会为您的控制台应用程序和 Web API 应用程序选择不同的模式。在使用服务总线队列之前,尝试在 Web API 应用程序中将其显式设置为 TCP。

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Tcp;

我能够通过在 web.config 中启用 defaultConfig 条目来使其工作:

<system.net>
  <defaultProxy enabled="true"/>
</system.net>