c# - 如何通过代理连接到 Azure 服务总线主题 - C#?
问题描述
我正在开发一个 Web 应用程序,当我们提供命名空间连接字符串和主题名称时,它会显示 Azure 服务总线主题的详细信息。这是我用于此的代码:
//To Check whether the topic is available in Azure Service Bus
private bool IsTopicAvailable(string connectionString, string path)
{
try
{
var servicebusConnectionString = new ServiceBusConnectionStringBuilder(connectionString)
{
TransportType = Microsoft.ServiceBus.Messaging.TransportType.Amqp
};
NamespaceManager namespaceManager = NamespaceManager.CreateFromConnectionString(servicebusConnectionString.ToString());
if (namespaceManager.TopicExists(path))
return true;
else
{
return false;
}
}
catch (Exception)
{
return false;
}
}
//To Get the Topic details
public TopicDescription GetTopic(string connectionString, string topicName)
{
var servicebusConnectionString = new ServiceBusConnectionStringBuilder(connectionString)
{
TransportType = Microsoft.ServiceBus.Messaging.TransportType.Amqp
};
NamespaceManager namespaceManager = NamespaceManager.CreateFromConnectionString(servicebusConnectionString.ToString());
var topic = namespaceManager.GetTopic(topicName);
return topic;
}
为此,我使用了Microsoft.ServiceBus
Assembly。但是当我通过代理使用该应用程序时,我无法获取主题的详细信息,而不是The remote server returned an error: (407) Proxy Authentication Required
在行中获取异常if (namespaceManager.TopicExists(path))
。但是我已经指定了一个出站规则以允许从 chrome 建立连接。在少数其他资源中,我看到解决方案是将代理详细信息设置为 WebRequest.DefaultWebProxy 例如:
var proxy = new WebProxy(data.ProxyUri);
proxy.Credentials = new NetworkCredential(data.ProxyUsername, data.ProxyPassword);
WebRequest.DefaultWebProxy = proxy;
但是这种方法覆盖了整个应用程序中使用的默认代理,并且在其他领域也有所体现。但我只想为服务总线主题调用应用代理值。
有人可以帮助我使用 C# 为 Azure 服务总线代理配置代理。
解决方案
错误代码 407 表明代理已被使用。只是存在代理身份验证问题。它必须可以使用系统代理设置,并且比您创建的没有绕过列表等的设置更好。
要继续使用现有代理,您可以尝试以下操作: WebRequest.DefaultWebProxy.Credentials = new NetworkCredential(data.ProxyUsername, data.ProxyPassword);
谢谢
推荐阅读
- java - Facebook 按钮登录但未执行登录后应执行的功能
- escaping - 使用 trans 翻译单引号
- amazon-web-services - 何时以及如何对具有分区键和排序键的 Dynamodb GSI 进行分区?
- reactjs - 为什么我的反应状态数据在反应中未定义?
- java - 如何将图像从 REST 服务方法返回到浏览器
- c# - 某些网站 FiddlerCore 的响应正文为空
- python - Python中的“通过”是什么类型?
- matlab - 如何避免在 MATLAB 中构造这些网格变量?
- javascript - 使用 jQuery 过滤嵌套的 JSON 以获取空值
- python - 异步 SQLite python