Сбой вызовов HTTPS API в установщике WiX MSI при работе в консольном приложенииC#

Место общения программистов C#
Ответить
Anonymous
 Сбой вызовов HTTPS API в установщике WiX MSI при работе в консольном приложении

Сообщение Anonymous »

Я разрабатываю собственный установщик с использованием набора инструментов WiX для приложения .NET Framework 4.8. В процессе установки мне нужно сделать вызов HTTPS API. Вызов API отлично работает в автономном консольном приложении, но постоянно завершается сбоем при выполнении из установщика MSI.
Сведения о проблеме:
Вызов API работает с как HTTP, так и HTTPS в консольном приложении.
В установщике MSI HTTP-запросы выполняются успешно, но HTTPS-запросы завершаются с ошибкой

Ошибка:
Произошла ошибка при настройке сервера: WebException
произошло во время вызова API:
https://{Domain}:443/api /RPA/RpaSetupLog
Состояние: ReceiveFailure
Ответ:
Сообщение: Базовое соединение было закрыто: при получении
произошла непредвиденная ошибка.
Трассировка стека: в системе .Сеть. HttpWebRequest.GetResponseO
в CustomActions. Пользовательские действия. SendDataToApi(String
protocol, String domainOrlp, String port, String jsonData,
String rootCertificateString, String
intermediateCertificateString, String
endDomainCertificateString) в
Произошло в строке: O

Итак, проблема в том, что у меня был установщик Wix, для которого у меня есть установщик MSI, и когда я пытаюсь вызвать API с протоколом https это дает мне ошибку, но в notmal http это удалось, и когда я создаю одно консольное приложение с тем же параметром и той же функцией и пытаюсь вызвать его успешно, у меня возникла проблема с https в установщике .msi, я также добавьте эту строку

Код: Выделить всё

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
То же самое в консольном приложении работает, но в установщике MSI не работает
Проверенные сертификаты:
Убедилось, что сервер использует действительный сертификат. Для самозаверяющих сертификатов я вручную установил корневой, промежуточный и доменный сертификаты в хранилище сертификатов производственной системы.
Протестировано в различных средах:

На моем локальном компьютере и консольное приложение, и установщик MSI работают нормально.
В производственной системе:
Консольное приложение работает как для HTTP, так и для HTTPS.
Установщик MSI не работает для HTTPS.
Подключение к сети:

Проверено, что рабочая система может разрешить и пропинговать домен API.
HTTP-запросы от установщика MSI выполняются успешно. , указывая на наличие доступа к сети.

Код: Выделить всё

Code :

private static bool SendDataToApi(string protocol, string domainOrIp, string port, string jsonData)
{
string apiUrl = $"{protocol}://{domainOrIp}:{port}/api/RPA/RpaSetupLogs";

try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiUrl);
request.Method = "POST";
request.ContentType = "application/json";
request.Timeout = 30000;

// Enable TLS 1.2
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

// Bypass SSL Validation (Tried this as a workaround)
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

using (var writer = new StreamWriter(request.GetRequestStream()))
{
writer.Write(jsonData);
writer.Flush();
}

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
if (response.StatusCode != HttpStatusCode.OK)
{
throw new InvalidOperationException($"API call failed with status: {response.StatusCode}");
}
}

return true;
}
catch (WebException webEx)
{
Console.WriteLine($"WebException: {webEx.Message}, Status: {webEx.Status}");
throw;
}
}

Сведения о среде:

  • Локальная система >:

    Windows 10
  • .NET Framework 4.8
  • HTTPS работает в обоих консольных приложениях. и установщик MSI.
[*]Производственная система >:
  • Windows Server 2019
  • HTTPS работает в консольном приложении, но не работает в установщике MSI.
  • HTTP отлично работает как в консольном приложении, так и в установщике MSI.

В чем мне нужна помощь:

  • Почему HTTPS сбой запроса в установщике MSI, но работа в консольном приложении?
  • Может ли это быть связано с контекстом выполнения, разрешениями или настройками среды установщика? Если да, то как мне отладить или решить эту проблему?
  • Требуются ли специальные конфигурации, чтобы установщик WiX поддерживал вызовы HTTPS во время установки?< /p>
Мы будем очень признательны за любые идеи и предложения. Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/792 ... onsole-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»