Веб-приложение не может вызвать оставшийся вызов на нашем недавно развернутом VPS-сервере, на котором установлен сервер Windows 2016. Код прекрасно работает на сервере Windows 10, где он может вызвать остальной вызов. Отсутствует ли какой-либо модуль на сервере Windows 2016 (.Net версии 4.7.2), он не работает? Веб-приложение и остальные серверные службы развернуты на одном компьютере VPS. Исходный код веб-приложения был скомпилирован в .net версии 4.5.
Webconfig содержит следующие записи. Мы попытались настроить с использованием IP-адреса службы, адреса доменного имени, а также как «localhost».
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
<!-- <add key="EmailServiceURL" value="https://services.mydomain:9876/EmailService" /> -->
<!-- <add key="EmailServiceURL" value="https://localhost:9876/EmailService" /> -->
<add key="EmailServiceURL" value="https://XXX.XXX.XXX.XXX:9876/EmailService" />
</appSettings>
Остальные API корректно запускаются, когда остальной клиент вызывает их с того же VPS-сервера.
Это простой код, который работает в среде Windows 10, а не новый сервер VPS Window 16, который мы настроили. Как вы думаете, какие-либо компоненты установки .NET отсутствуют?
string UrlString = ConfigurationManager.AppSettings["M3QEmailServiceURL"];
string strMethod = "POST";
<... more code ...>
result = InvokeWebRequest(UrlString, strMethod, strJsonData.ToString());
<... more code ...>
public string InvokeWebRequest(string UrlString, string strMethod, string jsonString)
{
var request = WebRequest.Create(UrlString);
request.ContentType = "application/json";
request.Method = strMethod;
using (var writer = new StreamWriter(request.GetRequestStream()))
{
writer.WriteLine(jsonString);
}
var response = request.GetResponse();
string strResult = string.Empty;
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
strResult = sr.ReadToEnd();
sr.Close();
}
return strResult.ToString();
}
}