#asp.net-mvc-4 #shared-hosting #stripe.net
#asp.net-mvc-4 #общий хостинг #stripe.net
Вопрос:
Я получаю следующую ошибку при использовании stripe payment (тестовый режим) в приложении ASP.MVC 4.0, опубликованном на общем хостинге 1and1:
Запрос разрешения системы type ‘.Безопасность.Разрешения.Сбой безопасности, mscorlib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089’. Кто-нибудь сталкивался с подобными ошибками? Я читал, что общий хостинг может иметь какое-то отношение, потому что он использует конфигурацию «среднего доверия», но трудно согласиться с тем, что stripe нельзя использовать в учетных записях общего хостинга (я полагаю, что большинство веб-сайтов работает на общем хостинге)
Большое спасибо!
Ответ №1:
У меня были те же проблемы. Похоже, возникла проблема с выполняемыми проверками, чтобы убедиться, что ваш сервер не был перенаправлен после проблем с heartbleed. Я работаю с автором stripe.net библиотека nuget для ее исправления. Если вы хотите исправить это самостоятельно, перейдите к файлу 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;
}
}
Комментарии:
1. Итак, публикация на сайте с настройкой ssl позволит мне раскомментировать эти строки, не так ли?
2. Нет, я пробовал это, и это также не удается. Если вы используете версию .net 4.0 или ниже, этот код будет каждый раз завершаться ошибкой. Если вы используете 4.5 , вы действительно можете оставить все комментарии, как указано выше, и изменить код (на той же кодовой странице .cs). обновление проблемы с github