You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.Net Core控制器PublishDraft接口测试生产环境报No such host is known错误

.NET Core控制器PublishDraft动作部署后返回"No such host is known"错误排查

我在.Net Core控制器中定义了一个PublishDraft动作,开发阶段在本地localhost运行完全符合预期,但部署到测试或生产服务器后,调用该动作就会返回"No such host is known"错误。
该控制器下有多个动作,除了这个单独的PublishDraft()动作之外,其余所有动作在测试和生产环境都能正常运行,因此可以排除DNS问题。

[HttpPost("PublishDraft")]
public async Task<IActionResult> PublishDraft([FromBody] PublishDraftRequest request)
{
    try
    {
        var existing = _unitOfWork.Drafts.GetAll(d => d.Id == request.DraftId, null, "DraftTags").FirstOrDefault();

        if (existing == null)
        {
            return NotFound("Draft does not exist");
        }

        var created = await _unitOfWork.Drafts.PublishDraft(existing, User.Claims.GetUserId());

        if (created.TreeNodeTypeId == (int)TreeNodeTypes.Private && created.ParentId != null)
        {
            await _unitOfWork.TreeNodeUser.UpdateUserPermissionsAsync(created.Id, created.ParentId, User.Claims.GetUserId());
        }

        return Created("TreeNode", created);
    }
    catch (Exception ex)
    {
        logger.LogError(ex, User);
        return BadRequest(ex.Message);
    }
}

无论是使用Angular web客户端还是PostMan在测试、生产环境测试,调用这个单独的动作都会返回同样的错误,服务器环境为IIS 10。

排查更新

  • 针对异常调用栈的疑问:最初没有捕获到任何异常,曾判断控制器动作未被命中,因此没有异常日志输出。
  • 补充异常现象:只有传入的DraftId真实存在时才会返回"unknown host"错误,如果传入无效的DraftId,会正常返回"Draft does not exist"的错误提示,说明控制器动作实际上是被命中了的。后续通过添加链路日志定位问题出现的具体位置。

问题已解决(2021年9月9日)

问题根源为环境配置不统一,最终定位是外部API端点地址末尾缺少斜杠导致。

服务需要在PublishDraft()动作内部通过HttpClient调用外部API,本地localhost的appSettings中的端点基础地址配置如下:

"EndPointsConfig": {
  "FileStore": "https://localhost:44314/"
}

该配置末尾的斜杠是正确的。

但测试和生产环境的appSettings配置如下:

"EndPointsConfig": {
  "FileStore": "https://filestore.domain.com"
}

末尾缺少斜杠导致了"No such host is known"错误,因为拼接接口路径时没有斜杠会生成错误的地址,比如会变成https://filestore.domain.com/deleterange,添加末尾斜杠后问题就完全解决了。

内容的提问来源于stack exchange,提问作者King Wilder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 20:57:03