C# 为什么控制台应用默认使用代理?

C# 为什么控制台应用默认使用代理?,c#,azure,proxy,C#,Azure,Proxy,我目前在类库中遇到了一些问题,它不能作为控制台应用程序使用 console应用程序的目的是将消息发送到azure队列,这样做没有任何问题,并且可以在ressource monitor中看到它通过我们的web代理和azure队列进行调用。这是默认完成的,我没有告诉它应该使用这个代理 另一方面,类库也做同样的事情,但不使用代理,因此无法发送其数据 这两个项目在调用发送消息的方式上是相同的,但出于某种原因,console应用程序(其意图仅发送消息)和library(其意图相同)的行为是不同的-为什么c

我目前在类库中遇到了一些问题,它不能作为控制台应用程序使用

console应用程序的目的是将消息发送到azure队列,这样做没有任何问题,并且可以在ressource monitor中看到它通过我们的web代理和azure队列进行调用。这是默认完成的,我没有告诉它应该使用这个代理

另一方面,类库也做同样的事情,但不使用代理,因此无法发送其数据

这两个项目在调用发送消息的方式上是相同的,但出于某种原因,console应用程序(其意图仅发送消息)和library(其意图相同)的行为是不同的-为什么console应用程序尝试使用代理,以及我如何强制类库强制使用代理

结论:

如何强制Microsoft.ServiceBus.Messaging.QueueClient.send
据我所知,要使用代理而不是端口443,在使用service bus client时无法设置代理

Service Bus客户端的唯一连接选项如下所示:

HTTP-端口80

HTTPS-端口443

TCP-9350至9354

有关更多信息,我们可以参考:

在类库中,请按以下代码将连接模式设置为Http,然后重试:

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http;

类似于您的帖子:

来回答我自己的问题

我通过创建proxy.config解决了这个问题,并将其添加到我的app.config中

proxy.config格式:

<?xml version="1.0"?>
<defaultProxy enabled="true">
    <proxy autoDetect="False" proxyaddress="http://<proxyaddress>:<port>" />
    <bypasslist>
        <add address="localhost" />
    </bypasslist>
</defaultProxy>

并将proxy.config作为system.net配置添加到my app.config中:

  <system.net>
    <defaultProxy configSource="proxy.config" />
  </system.net>