从 VS19 调试模式到已发布网站的 DevOps 接口有什么区别?

What is a Difference between DevOps Interface from VS19 Debug Mode to published Website?

我有一个 Web 应用程序发布在我进行编码和调试的同一台 PC 上。 其中一项功能是连接到公司的 Azure DevOps 服务器以读取或写入 WorkItems 的接口。 我正在使用 VS19。如果我处于从 VS(F5 或 ctrl+F5)启动的调试模式,与 DevOps 的通信运行良好,我可以读写 WorkItems。如果我尝试从托管在同一台 PC 上的具有调试配置的已发布站点执行相同操作,我会得到响应,即我的请求被拒绝。

为了测试我的连接状态,我根据 guidelines 实现了一个小的测试连接方法 身份验证是通过 PAT 实现的。 PAT 正确且身份验证有效。

public async Task<ConnectionStatus> CheckAzureConnection()
{
  string url = _uri + "/_apis/connectionData?api-version=5.1-preview";
  ConnectionStatus status = new ConnectionStatus();

  try
  {
  
    using (HttpClient client = new HttpClient())
    {
      client.DefaultRequestHeaders.Accept.Add(
        new MediaTypeWithQualityHeaderValue("application/json"));

      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
        Convert.ToBase64String(
          System.Text.ASCIIEncoding.ASCII.GetBytes(
            string.Format("{0}:{1}", "My User Name", _personalAccessToken))));


      using (HttpResponseMessage response = await client.GetAsync(url))
      {
        status.Status = response.StatusCode.ToString(); 
        return status;
      }
    }
  }
  catch (Exception ex)
  {
    status.Status = "Not OK";
    return status;
  }
}

此代码在调试期间有效,但在已发布的网站中无效。站点发布在 IIS Web 服务器上。内部有效证书绑定到站点。 IIS Basic 身份验证已根据 Microsoft 关闭。老实说,我试着打开和关闭它。

第一个站点是用发布配置发布的,但实际上因为问题我切换到调试配置,没有成功发布。

有人知道我忘记了什么吗?为什么我的请求被拒绝?

问题出在 IIS 配置中。正如我在问题中提到的,站点在公司网络中是 运行。我将应用程序池配置为由本地用户执行。在我将本地用户更改为网络用户后,它起作用了。 据我所知,VS 有自己的 IIS,这是 运行 签名的网络用户。这与主机上的 IIS 不同。