Пожалуйста, помогите мне. API, который я создал, работает нормально, когда я запускаю его с Visual Studio, но (методы POST) имеют проблемы, которые я развернул в IIS. Он возвращает неправильные значения, а иногда и нулевые значения. Если я go вернусь, чтобы проверить его в режиме отладки, он будет работать хорошо.
ЭТО ГДЕ Я ВЫЗЫВАЮ API
try
{
string apiToken = "DEFAULTAPI";
EmployeeObject EmployeeObject = new EmployeeObject()
{
username = "John Doe"
password = "12345"
apiToken = apiToken
};
var emp = JsonConvert.SerializeObject(EmployeeObject);
string url = "http://localhost/PublishVersion/api/Company";
//the url variable holds the published version link
var response = client.PostAsync(url, new StringContent(emp, Encoding.UTF8, "application/json"));
response.Wait();
var result = response.Result;
if (result.IsSuccessStatusCode)
{
Uri employeeUrl = result.Headers.Location;
var statusMessage = result.Content.ReadAsStringAsync().Result;
if (statusMessage == "yes")
{
status = true;
}
else if (statusMessage == "no")
{
status = false;
}
}
return status;
}
И ЭТО API
public string Post([FromBody] Employees employees)
{
string message = "no";
if (employees != null)
{
string emp = employees.username;
string password = employees.password
string apiToken = employees.apiToken
APIToken token = _dbContext.MyTable.Where(x => x.apitoken == apitoken).FirstOrDefault();
//APIToken is a table which has properties company and boss (both string)
if (token != null)
{
string company = token.company;
string boss = token.boss;
return message = "yes" + " " + company + "" + boss;
}
else
{
return message = "invalid token";
}
}
return message + employee.username;
}
API возвращает вызывающему абоненту «no John Doe», что не должно быть так, поскольку он отображал значение имени пользователя, которое показывает, что объект employee не является значение NULL. Почему он не go в блок кода, так как он прошел нулевую проверку? Эта проблема возникает только при развертывании проекта API в IIS (версия 10). Прекрасно работает в режиме отладки Visual Studio.
Кроме того, API и Winsform (откуда я его вызываю) находятся на одной машине.
Спасибо.