Я создал веб-приложение, которое вызывает веб-службу, для которой требуется сертификат клиента для аутентификации.Вот фрагмент того, как я строю запрос:
// Grab Certificate
X509Certificate2 cert2 = new X509Certificate2(AppDomain.CurrentDomain.BaseDirectory + GiftCardConfig.A2A_CertificateLocation, GiftCardConfig.A2A_CertificatePassword, X509KeyStorageFlags.MachineKeySet);
// First Call Status Account
StringBuilder urlStatus = new StringBuilder(GiftCardConfig.A2A_URL + "webservice.asp?");
urlStatus.Append("userid=" + GiftCardConfig.A2A_UserID);
urlStatus.Append("&pwd=" + GiftCardConfig.A2A_Password);
urlStatus.Append("&sourceid=" + GiftCardConfig.A2A_SourceID);
urlStatus.Append("&cardnum=" + cardNumber);
urlStatus.Append("&purseno=" + GiftCardConfig.A2A_PurseID);
urlStatus.Append("&status=ACTIVATE");
// Build HTTP Request
HttpWebRequest wrStatus = (HttpWebRequest)WebRequest.Create(urlStatus.ToString());
wrStatus.KeepAlive = true;
wrStatus.Method = "GET";
wrStatus.Accept = "text/xml";
wrStatus.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.2; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0C; .NET4.0E)";
wrStatus.ClientCertificates.Clear();
wrStatus.ClientCertificates.Add(cert2);
Это все работает, но только периодически.Примерно каждые 24 часа Сервер, на котором размещается веб-служба, выдает ошибку 403: Запрещено.Единственный способ исправить это - выполнить iisreset сервера, на котором запущено веб-приложение.Мы полностью озадачены этой проблемой и хотели бы знать, связана ли эта проблема с веб-приложением или конфигурацией сервера, на котором оно размещено.