• Как восстановить доступ к ISPmanager после установки SSL сертификата?

    @Sanel Автор вопроса
    ИСПРАВЛЕНО
    Что бы исправить надо:
    скопировать существующие сертификаты
    cp /var/www/httpd-cert/www-root/домен.ru.crt /usr/local/mgr5/etc/manager.crt
    cp /var/www/httpd-cert/www-root/домен.ru.key /usr/local/mgr5/etc/manager.key
    и перезапустил ihttpd

    P.S. домен.ru.crt и домен.ru.key название ваших сертификатов и ключей.
    Ответ написан
    1 комментарий
  • C# HttpWebRequest получить описание ошибки сервера при StatusCode 500?

    ayazer
    @ayazer
    Sr. Software Engineer
    Никак. На то это и внутренняя ошибка, что клиенту ничего про нее знать не нужно. В браузере вы можете что-то видеть только если сервер запущен с тестовой конфигурацией (когда в случае ошибки отображает страницу со стектрейсом).

    UPD

    нужное вам поведение можно получить как-то так:

    [ApiController]
        public class TestController : ControllerBase
        {
            [HttpGet]
            public Task ChangeStatus()
            {
                throw new Exception("My test exception");
            }
        }


    public class HttpResponseExceptionFilter : IActionFilter, IOrderedFilter
    {
            public void OnActionExecuted(ActionExecutedContext context)
            {
                if (context.Exception != null)
                {
                    context.Result = new ObjectResult(new
                    {
                        ErrorText = context.Exception.Message,
                        Stacktrace = context.Exception.StackTrace
                    })
                    { StatusCode = (int)HttpStatusCode.BadRequest };
    
                    context.Exception = null;
    
                    return;
             }
    }


    тогда дергнув контроллера вы обратно получите 400ую ошибку с контентом

    {
    "errorText": "My test exception",
    "stacktrace": "stacktrace was here"
    }

    UPD2:
    ну и насколько я помню (а я могу быть не прав, но не могу перепроверить сейчас) - HttpWebRequest будет кидать ексепшн для всех не 200 хттп статусов. Потому возможно стектрейс прийдется доставать не очень красиво

    WebRequest request = ...;
    try
    {
      using var response = request.GetResponse();
      ...
    }
    catch (WebException e)
    {
      using var webResponse = (HttpWebResponse)e.Response;
      var code = webResponse.StatusCode;
      var body = ...;
    
      //...
    
    }


    или использовть HttpClient, который ексепшн кидает только если попросить
    Ответ написан
    4 комментария