Проблема с хостингом Stripe Payment

Я получаю следующую ошибку при использовании полосовой оплаты (тестовый режим) в приложении ASP.MVC 4.0, опубликованном на общем хостинге 1and1:

Запрос на разрешение типа «System.Security.Permissions.SecurityPermission, mscorlib, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089» не выполнен. Кто-нибудь сталкивался с подобными ошибками? Я читал, что у виртуального хостинга может быть чем заняться, потому что он использует конфигурацию «среднего доверия», но трудно согласиться с тем, что полосу нельзя использовать в учетных записях общего хостинга (я считаю, что большинство веб-сайтов работают на виртуальном хостинге)

Большое спасибо!


person rafa0212    schedule 04.07.2014    source источник


Ответы (1)


У меня были такие же проблемы. Кажется, есть проблема с проверками, выполняемыми, чтобы убедиться, что ваш сервер не был перенаправлен после проблем с heartbleed. Я работаю с автором библиотеки nuget stripe.net, чтобы исправить это. Если вы хотите исправить это самостоятельно, перейдите в файл Infrastructure \ Requestor.cs и отредактируйте следующий раздел (я закомментировал проблемные области). После этого вы можете запустить stripe.net со средним уровнем доверия.

private static string ExecuteWebRequest(WebRequest webRequest)
    {
        //var verificationCallback = new RemoteCertificateValidationCallback(StripeCertificateVerificationCallback);

        try
        {
            //ServicePointManager.ServerCertificateValidationCallback += verificationCallback;

            using (var response = webRequest.GetResponse())
            {
                return ReadStream(response.GetResponseStream());
            }
        }
        catch (WebException webException)
        {
            if (webException.Response != null)
            {
                var statusCode = ((HttpWebResponse)webException.Response).StatusCode;

                var stripeError = new StripeError();

                if(webRequest.RequestUri.ToString().Contains("oauth"))
                    stripeError = Mapper<StripeError>.MapFromJson(ReadStream(webException.Response.GetResponseStream()));
                else
                    stripeError = Mapper<StripeError>.MapFromJson(ReadStream(webException.Response.GetResponseStream()), "error");

                throw new StripeException(statusCode, stripeError, stripeError.Message);
            }

            throw;
        }
        finally
        {
            //ServicePointManager.ServerCertificateValidationCallback -= verificationCallback;
        }
    }
person Justin    schedule 15.07.2014
comment
Итак, публикация на сайте с настройкой ssl позволит мне раскомментировать эти строки, не так ли? - person rafa0212; 16.07.2014
comment
Нет, я пробовал это, и это тоже не помогло. Если вы используете версию .net 4.0 или ниже, этот код будет терпеть неудачу каждый раз. Если вы используете 4.5+, вы можете оставить все комментарии, как указано выше, и изменить код (на той же кодовой странице .cs). обновление проблемы github - person Justin; 16.07.2014