gpt4 book ai didi

iis - 将工件发布到 IIS 上的远程 TeamCity 服务器时出现问题

转载 作者:行者123 更新时间:2023-12-04 00:38:01 26 4
gpt4 key购买 nike

我对 TeamCity 有一个相当奇怪的问题。我有一个 TeamCity 安装,带有本地和远程构建代理。 TeamCity 服务器隐藏在带有应用程序请求路由 (ARR) 的 IIS 后面,以启用 SSL 等。我感觉这可能是问题的一部分,但我不确定。怀疑 IIS 是问题一部分的另一个原因是,我尝试在 Azure Web 应用程序上托管 TeamCity,并得到完全相同的行为。

问题是,在构建之后,当构建代理尝试将工件发布到服务器时,我从 TeamCity 服务器收到 404。 TeamCity 认为这是一个可恢复的错误(请参阅日志),并不断重试几次。最终,发布失败。

如果我将本地代理配置为通过 http://localhost 访问 TeamCity ,一切顺利。但是,当通过公共(public)地址(通过 IIS 提供服务)访问时,我得到 404。 404 内容看起来像标准的 IIS 404 页面。

我尝试将代理日志记录详细程度设置为 DEBUG ,但它仍然不输出它试图调用的实际 URL。

有没有人知道如何解决这个问题?让 TeamCity 代理输出获取 404 的 URL 将是一个好的开始。

[Publishing artifacts] Publishing 1 file [F:/tc/ba3/temp/buildTmp/out/_PublishedWebSites/**/* => dist.zip] using [WebPublisher]
[15:34:15][Publishing artifacts] Publishing 1 file [F:/tc/ba3/temp/buildTmp/out/_PublishedWebSites/**/* => dist.zip] using [ArtifactsCachePublisher]
[15:35:10]
[Publishing artifacts] Recoverable problem publishing artifacts (will retry): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>404 - File or directory not found.</title>
<style type="text/css">
<!--
body{margin:0;font-size:.7em;font-family:Verdana, Arial, Helvetica, sans-serif;background:#EEEEEE;}
fieldset{padding:0 15px 10px 15px;}
h1{font-size:2.4em;margin:0;color:#FFF;}
h2{font-size:1.7em;margin:0;color:#CC0000;}
h3{font-size:1.2em;margin:10px 0 0 0;color:#000000;}
#header{width:96%;margin:0 0 0 0;padding:6px 2% 6px 2%;font-family:"trebuchet MS", Verdana, sans-serif;color:#FFF;
background-color:#555555;}
#content{margin:0 0 0 2%;position:relative;}
.content-container{background:#FFF;width:96%;margin-top:8px;padding:10px;position:relative;}
-->
</style>
</head>
<body>
<div id="header"><h1>Server Error</h1></div>
<div id="content">
<div class="content-container"><fieldset>
<h2>404 - File or directory not found.</h2>
<h3>The resource you are looking for might have been removed, had its name changed, or is temporarily unavailable.</h3>
</fieldset></div>
</div>
</body>
</html>

最佳答案

编辑:在 TeamCity 页面上也发现了这一点:

https://confluence.jetbrains.com/display/TCD9/Known+Issues#KnownIssues-FailuretopublishartifactstoserverbehindIISreverseproxy

失败的请求跟踪(正如 Terri Rougeou Donahue 提到的)是帮助我的工具。我有两个错误。

  • 首先,StaticFileHandler 没有关闭。因此,当尝试 POST 到 /httpAuth/artefactUpload.html URL,StaticFileHandler 试图在 ARR 处理请求之前处理它。
  • 当我关闭 StaticFileHandler 时,RequestFiltering 模块启动,并返回错误代码 404.13,即“内容长度太大”。经过一番谷歌搜索,我发现了这个,http://www.iis.net/configreference/system.webserver/security/requestfiltering/requestlimits ,描述参数maxAllowedContentLength ,并显示“默认值为 30000000,大约为 28.6MB。”

  • 解决方案是:
  • 关闭网站的 StaticFileHandler(处理程序映射)
  • 编辑网站上“请求过滤”设置的属性,将“允许的最大内容长度”设置为合理的值。我添加了一个 0(使其大约为 286MB,因为工件可能会变得非常大)。

  • maxContentLength IIS settings window

    关于iis - 将工件发布到 IIS 上的远程 TeamCity 服务器时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31811110/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com