检索文件时 TFS 503 服务不可用

TFS 503 Service Unavailable when retrieving files

我们有一台 TFS 2013 服务器,我仅将其用于源代码管理。我刚买了一台 Windows 10 和 Visual Studio 2017 的新台式电脑。我能够成功连接到 TFS,我可以开始下拉代码,但是在本地构建目录结构之后文件开始下降,有几个成功,然后其余的失败并显示 503 服务不可用,并且连接丢失,迫使我重新连接。

我可以在几秒钟后再次连接,然后继续尝试,它又发生了。

如果我一次拉取一个文件,似乎没问题,但是当我尝试拉取整个项目时,它就崩溃了。

这发生在服务器上的多个项目上。

一般来说,当我将应用程序过载到使应用程序池崩溃的程度时,我会在 ASP.NET 中看到 503 错误 - 我不知道这是否是这里发生的情况,但如果是,我我想知道 VS 是否拉下代码的速度太快,可能是并发线程太多或其他原因,导致旧版本的 TFS 无法处理,导致它崩溃。

如果是这样的话,我可以做些什么来改变我的机器吗?或者您对可能导致此问题的原因有任何其他想法吗?

截至目前,我无法访问服务器以获取事件日志,但如果我无法自行解决问题,我可以提出请求。

上次遇到这种情况,我落后了rate-limiting proxy503 是临时服务中断的常见错误代码,例如速率限制。

Excessive requests are delayed until their number exceeds the maximum burst size in which case the request is terminated with an error 503 (Service Temporarily Unavailable).

托管 TFS 的 IIS 服务也可以 be configured to have request rate limiting

maxBandwidth Optional uint attribute.

Specifies the maximum network bandwidth, in bytes per second, that is used for a site. Use this setting to help prevent overloading the network with IIS activity.

maxConnections Optional uint attribute.

Specifies the maximum number of connections for a site. Use this setting to limit the number of simultaneous client connections.

Visual studio 2017 优化了通过多个并行线程下载的方式(如果我没记错的话至少是 8 个)。这可能会触发某些代理的速率限制。而且大量的小代码文件很容易触发速率限制。

如果可以直接访问 TFS 服务器,您可以尝试将其添加到代理排除列表中,以排除是否是您端的代理造成了中断。但是像 nginx 这样的 HTTP 服务器也可以作为一种安全措施来实现,并且可以在服务器端进行反向代理,在这种情况下,服务器管理员必须更改限制。

我在从 intellij 访问我们的 tfs-git 存储库时遇到了类似的问题。一下子就报错了unable to access <repo url>。请求的 URL 返回错误:503".

有什么帮助:

在 intellij->VCS-git-> 遥控器中将 url 更改为错误的(验证失败)然后返回有效的。

在我的例子中,随后出现了登录请求,我终于重新获得了对存储库的访问权限。