如何在 VSTS 构建代理上的本地主机上打开 TCP 端口?

2023-12-09

使用 Visual Studio Team Services 的在线托管版本时,我的单元测试无法连接到侦听生成代理本地主机上的 TCP 端口的服务。该服务能够启动并打开 TCP 端口,但在单元测试中似乎无法访问。

错误信息:

2017-06-20T12:05:00.8231306Z ##[错误]------------ System.Net.Http.HttpRequestException:发送时发生错误 的请求。 2017-06-20T12:05:00.8231306Z ##[错误]---------------- System.Net.WebException:无法连接到远程服务器 2017-06-20T12:05:00.8231306Z ##[错误]-------------------- System.Net.Sockets.SocketException:无法建立连接 因为目标机主动拒绝127.0.0.1:41670

打开 TCP 端口的服务启动如下:

    public void Start()
    {
        HttpPort = ObtainFreePort();
        TcpPort = ObtainFreePort();
        ClusterVNode node = EmbeddedVNodeBuilder.AsSingleNode()
            .WithInternalTcpOn(new IPEndPoint(IPAddress.Loopback, TcpPort))
            .WithExternalTcpOn(new IPEndPoint(IPAddress.Loopback, TcpPort))
            .WithInternalHttpOn(new IPEndPoint(IPAddress.Loopback, HttpPort))
            .WithExternalHttpOn(new IPEndPoint(IPAddress.Loopback, HttpPort))
            .AddExternalHttpPrefix($"http://+:{HttpPort}/")
            .RunProjections(ProjectionsMode.All)
            .StartStandardProjections()
            .RunInMemory()
            .Build();
        node.StartAndWaitUntilReady().Wait();
    }

    static int ObtainFreePort()
    {
        using (var sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp))
        {
            sock.Bind(new IPEndPoint(IPAddress.Loopback, 0));
            var port = ((IPEndPoint)sock.LocalEndPoint).Port;
            sock.Close();
            return port;
        }
    }

这在我的本地计算机上有效:) Visual Studio Team Services Online 不支持此功能吗?


如果您使用托管代理,则无法打开端口或更改有关计算机配置的任何内容。您需要为构建设置自己的代理。

另外,如果测试需要 TCP 通信,那么它就不再是单元测试。单元测试没有外部依赖性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 VSTS 构建代理上的本地主机上打开 TCP 端口? 的相关文章

随机推荐

  • AngularJS 和 jquery 移动

    我通过 AngularJS 中的控制器将 html partial 加载到 ng view 指令中 html 部分看起来像这样 div ul li a href detailsuser a A a li li a href detailsu
  • 将 Http“Post”请求发送到 C 或 C++ 中的 PHP 代码

    我正在尝试向我的 php 文件发送 post 请求并获取信息 它工作正常 但是 在打印 php 文件中的响应之前 它还会打印一些内容 这就是它打印的内容 first HTTP 1 1 200 OK Date Fri 20 Apr 2012
  • ASP.NET MVC 自定义路由 很长的自定义路由在我脑海中没有出现

    今天我花了几个小时阅读有关在 ASP NET MVC 中进行自定义路由的内容 我可以理解如何执行任何类型的自定义路由 如果它从默认路由扩展或类似于 小于默认路由 但是 我正在尝试找出如何执行类似于以下内容的路线 Language Langu
  • 对自定义类的 IEnumerable 中具有特定 ID 的项目求和

    CustomClass int ID int numberToSum float numToAverage IEnumerable
  • Volley速度慢并导致内存泄漏

    在我的项目中 我使用 volley 下载 JSON 流 我解析该流并将其显示在列表视图中 我使用以下方法加载数据 private void loadEventData int year final int month get volley
  • 在您的 delphi 应用程序中托管 WSH(VBScript、JavaScript)?

    我正在寻找从我的 Delphi 应用程序执行用户提供的脚本 是否可以在我的应用程序中托管 Windows 脚本宿主引擎并为其提供要执行的脚本 或者 有更好的方法来解决这个问题吗 P S 我不是在寻找第三方组件 这是完全可能的 并且有大量代码
  • 替换每行中第一次出现的位置

    假设我有一个格式如下的文档 word1 word2 word3 word4 word5 word6 word7 word8 我该如何使用sed将第一次出现的空格替换为逗号后跟空格 以便文档如下所示 word1 word2 word3 wor
  • 在从命令行调用的 Jython 脚本中使用 UCanAccess

    操作系统 Windows7 Jython2 7 0FR 最终版本 尝试将 Gord Thompson 的解决方案与 Jython 结合使用 在没有 ODBC 的情况下从 Java 操作 Access 数据库 我可以让 Ucanaccess
  • 如何在核心java中实现图?

    我有一个有向未加权图 给出了节点的数量和节点之间的所有链接 我尝试使用向量数组来完成该任务 但 java 不支持它 ArrayList 和 Vectors 支持随机访问迭代器 但无法在 java 中执行此操作 因为我是新手 我不想使用二维矩
  • 排序合并的数据框

    作为一个相当新的 R 程序员 我似乎遇到了一个奇怪的问题 可能是我对 R 缺乏经验 在读取连续文件并将其合并到单个数据帧中后 我发现顺序未按预期对数据进行排序 我在每个文件中有多个引用 但每个文件引用在不同时间获得的测量数据 这是代码 li
  • 正确的 Bash 和 shell 脚本变量大写 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我遇到过许多变量全部大写的 shell 脚本 我一直认为这存在严重的误解 我的理解是 按照惯例 也许很久以前就有必要 环境变量全部大写 但在像 Bash 这样的现代脚本环境中 我一直更喜欢
  • Google oauth java 客户端获取访问令牌失败,并显示“400 Bad Request {“error”:“invalid_request”}”

    我正在使用此处显示的 Web 服务器应用程序 示例 在我的回调 servlet 中 我想检索访问令牌 但无法成功执行此操作 以下是我的代码 Override protected String getUserId HttpServletReq
  • UIAnimation的理解

    我正在尝试使用以下代码来执行一些动画 void performSlidingfromX int xx fromY int yy UIImageView Image self getImage UIView beginAnimations n
  • 透明JButton

    是否可以使 JButton 透明 包括边框 但不透明文本 我扩展了 swing 的 JButton 并覆盖了它 Override public void paint Graphics g Graphics2D g2 Graphics2D g
  • 如何使用 DXL 脚本从 IBM Doors 加载特定基线

    我编写了一个从批处理文件运行的 DXL 脚本 它接收一个模块路径 一个基线和一个视图 批处理命令打开 IBM Doors 9 6 后 脚本应该转到具有相关视图的模块路径并加载输入的基线 我的问题是我的脚本加载了current基线而不是我输入
  • 如何将多个实体集绑定到一个 odata 控制器?

    我有很多不同的实体想要为其启用 OData 这些实体根据其类型分为不同的组 目前 默认设置是将 EntitySet 与控制器名称相匹配 但我不希望为我拥有的每个实体类型都有一个控制器 有没有一种方法可以将多个 EntitySet 映射到一个
  • 将动态连接字符串与 Breeze EFContextProvider 结合使用

    目前我有一个应用程序 web silverlight 其中我的 ObjectContext 的连接字符串是动态的 它基于用户登录的方式 因为我的每个客户都有自己的数据库 即 用户名 域 我试图找到一种使用 EFContextProvider
  • CSS 使 DIV 位置固定在具有 PE​​RSPECTIVE 属性的 DIV 内部

    我有一个获取问题 fixed with position fixed关系到 container 检查这个小提琴 https jsfiddle net a1zoghs0 2 我知道 如果我把 fixed在外面 container 它将有pos
  • GCC 有多少个优化级别?

    多少GCC优化级别有哪些 我尝试了 gcc O1 gcc O2 gcc O3 和 gcc O4 如果我使用非常大的数字 它将不起作用 不过 我已经尝试过 gcc O100 它编译了 有多少个优化级别 迂腐地说 您可以为 gcc 提供 8 个
  • 如何在 VSTS 构建代理上的本地主机上打开 TCP 端口?

    使用 Visual Studio Team Services 的在线托管版本时 我的单元测试无法连接到侦听生成代理本地主机上的 TCP 端口的服务 该服务能够启动并打开 TCP 端口 但在单元测试中似乎无法访问 错误信息 2017 06 2