Asp.net 核心 2.0 PostAsync 在 IIS 7.5 上失败
Asp.net core 2.0 PostAsync fails on IIS 7.5
运行 在 Visual Studio 2017 RC 上一切正常,但部署到 IIS 时失败。
代码,
private void ConnectApi()
{
var jsonCredentials = new
{
username = AppSettings.ApiUserName,
password = AppSettings.ApiPassword,
hostName = AppSettings.ApiHostName
};
var request = new StringContent(JsonConvert.SerializeObject(jsonCredentials), Encoding.UTF8, "application/json");
var url = string.Format("{0}", AppSettings.Api_BaseUrl + AppSettings.Api_Authenticate);
using (var client = new HttpClient())
{
var response = client.PostAsync(new Uri(url), request).Result;
response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
var responseBody = response.Content.ReadAsStringAsync().Result;
string authorizationToken = string.Empty;
if (!string.IsNullOrEmpty(responseBody))
{
dynamic jsonContent = JsonConvert.DeserializeObject(responseBody);
AccessToken = jsonContent["authorizationToken"];
}
}
}
}
这是异常详情,
var response = client.PostAsync(new Uri(url), request).Result;
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: Access is denied
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Threading.Tasks.RendezvousAwaitable`1.GetResult()
at System.Net.Http.WinHttpHandler.<StartRequest>d__105.MoveNext()
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
有什么想法吗?
将应用程序池标识从 ApplicationPoolIdentity 更改为 NetworkService 解决了问题。
哪位专家能解释一下是什么解决了问题?
运行 在 Visual Studio 2017 RC 上一切正常,但部署到 IIS 时失败。
代码,
private void ConnectApi()
{
var jsonCredentials = new
{
username = AppSettings.ApiUserName,
password = AppSettings.ApiPassword,
hostName = AppSettings.ApiHostName
};
var request = new StringContent(JsonConvert.SerializeObject(jsonCredentials), Encoding.UTF8, "application/json");
var url = string.Format("{0}", AppSettings.Api_BaseUrl + AppSettings.Api_Authenticate);
using (var client = new HttpClient())
{
var response = client.PostAsync(new Uri(url), request).Result;
response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
var responseBody = response.Content.ReadAsStringAsync().Result;
string authorizationToken = string.Empty;
if (!string.IsNullOrEmpty(responseBody))
{
dynamic jsonContent = JsonConvert.DeserializeObject(responseBody);
AccessToken = jsonContent["authorizationToken"];
}
}
}
}
这是异常详情,
var response = client.PostAsync(new Uri(url), request).Result;
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.Http.WinHttpException: Access is denied
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Threading.Tasks.RendezvousAwaitable`1.GetResult()
at System.Net.Http.WinHttpHandler.<StartRequest>d__105.MoveNext()
--- End of inner exception stack trace ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
at System.Net.Http.HttpClient.<FinishSendAsyncBuffered>d__58.MoveNext()
有什么想法吗?
将应用程序池标识从 ApplicationPoolIdentity 更改为 NetworkService 解决了问题。
哪位专家能解释一下是什么解决了问题?