我目前正在为企业环境开发.net组件。它需要与使用SSH传输文件的第三方公司交谈。同一个组件也支持FTP与不同方进行通信。
在我尝试依赖WebProxy.IsBypassed方法告诉我目标Uri是否需要让代理服务器进行身份验证之前,一切正常。
我有app.config文件设置:
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy scriptLocation="http://address/proxy.pac"/>
</defaultProxy>
如果目标Uri为ftp://202.100.1.1:5500,则IsBypassed方法正确返回&#39; False&#39;,这正是我的预期。如果我将相同的Uri更改为ssh://202.100.1.1:5500,则IsBypassed方法返回&#39; True&#39;。
我已经测试了这个proxy.pac文件,它在ftp和ssh场景下都能正常工作。
我想知道.net实际使用这个pac文件,同时确定IsBypassed方法的真或假值?
我注意到的一件事是,如果我在app.config文件中键入地址,则visual studio会将其识别为链接,例如ftp://202.100.1.1:5500,然后IsBypassed方法总能返回预期的结果。如果我键入ssh://202.100.1.1:5500,则visual studio无法将其识别为链接,则IsBypassed方法始终返回false值。
Stack Overflow还会将带有FTP的uri自动转换为链接,但将SSH保留为纯文本。
有没有人对此有任何想法?