C# HttpClient.SendAsync:500-Windows服务应用程序中的内部服务器错误

C# HttpClient.SendAsync:500-Windows服务应用程序中的内部服务器错误,c#,asp.net,json,http,C#,Asp.net,Json,Http,我在尝试将json字符串发布到web API时看到了以下消息(这是在包含System.IO.file.WriteAllText的行中写入文件的内容): 我的异步过帐方法中的代码如下所示: Uri theUri = new Uri("http://www.website.com/WebsiteAPI/PostDetails"); HttpClient aClient = new HttpClient(); aClient.BaseAddress = theUri; aClient

我在尝试将json字符串发布到web API时看到了以下消息(这是在包含System.IO.file.WriteAllText的行中写入文件的内容):

我的异步过帐方法中的代码如下所示:

  Uri theUri = new Uri("http://www.website.com/WebsiteAPI/PostDetails");

  HttpClient aClient = new HttpClient();
  aClient.BaseAddress = theUri;
  aClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  aClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
      Convert.ToBase64String(
      System.Text.ASCIIEncoding.ASCII.GetBytes(
      string.Format("{0}:{1}", "USERNAME", "PASSWORD"))));
  aClient.DefaultRequestHeaders.Host = theUri.Host;

  HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, theUri);
  request.Content = new StringContent(resource, Encoding.UTF8, "application/json");

  // Post the data 
  aClient.SendAsync(request).ContinueWith(responseTask =>
      {
          System.IO.File.WriteAllText(PROFILE_JSON_PATH, "Response: " + responseTask.Result);
      });

我在网上尝试了许多不同的解决方案,但似乎都不管用。你知道这可能不起作用的原因吗?

简单的回答是,你的Web API有问题。您的客户机代码可能有问题,也可能没有问题——但您必须访问Web API以获取可以解释问题所在的信息

  Uri theUri = new Uri("http://www.website.com/WebsiteAPI/PostDetails");

  HttpClient aClient = new HttpClient();
  aClient.BaseAddress = theUri;
  aClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  aClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
      Convert.ToBase64String(
      System.Text.ASCIIEncoding.ASCII.GetBytes(
      string.Format("{0}:{1}", "USERNAME", "PASSWORD"))));
  aClient.DefaultRequestHeaders.Host = theUri.Host;

  HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, theUri);
  request.Content = new StringContent(resource, Encoding.UTF8, "application/json");

  // Post the data 
  aClient.SendAsync(request).ContinueWith(responseTask =>
      {
          System.IO.File.WriteAllText(PROFILE_JSON_PATH, "Response: " + responseTask.Result);
      });