Httphandler не пускается

Тема в разделе ".NET", создана пользователем khisrav, 24 дек 2008.

  1. khisrav

    khisrav Гость

    Привет всем!

    Снова возникла проблема, может, кто сталкивалсмя с такой:


    Сделал ASHX HttpHandler. Задача приложения получить http-запрос, поменять его формат, отправить https запрос на другой сервер, используя авторизацию по сертификату, получить ответ, поменять его формат и возвратить ответ первому отправителю. запроса.

    Хэндлер сделал в VS 2005. В среде VS он работал правильно и на 100 % корректно. Потом мне понадобилось переустановить ОС (Windows XP). После переустановки оси появилась проблема: теперь приложение не пашет - в IE выдается следующее:

    /*
    Server Error in '/WebSite7' Application.
    --------------------------------------------------------------------------------

    The remote server returned an error: (403) Forbidden.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Net.WebException: The remote server returned an error: (403) Forbidden.

    Source Error:

    Line 148: Line 149: //receiving an answer from remote server Line 150: HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Line 151: Stream receiveStream = response.GetResponseStream(); Line 152: StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);

    Source File: d:\DOCUMENTS\Visual Studio 2005\WebSites\WebSite7\Babilon.ashx Line: 150

    Stack Trace:

    [WebException: The remote server returned an error: (403) Forbidden.] System.Net.HttpWebRequest.GetResponse() +945 Handler.ProcessRequest(HttpContext context) in d:\DOCUMENTS\Visual Studio 2005\WebSites\WebSite7\Babilon.ashx:150 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Ex
    ecute() +401 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +117


    --------------------------------------------------------------------------------
    Version Information: Microsoft .NET Framework Version:2.0.50727.42; ASP.NET Version:2.0.50727.42

    */


    Строки, где возникает исключение были в try-catch блоке, но я временно убрал try-catch, чтобы видеть, в чем проблема. Не могу понять, в чем может быть проблема, и что было "задействовано" в старой оси, что все пахало...
    Может, проблема в сертификате - теперь он неправильно работает. Я получил сертификат от сервера, где авторизуюсь и вроде как его установил. Для авторизации запроса, я использовал следующие команды:


    System.Security.Cryptography.X509Certificates.X509Certificate Babilon_Certificate =

    System.Security.Cryptography.X509Certificates.X509Certificate.CreateFromCertFile
    (cer_file_path);

    ServicePointManager.CertificatePolicy = new CertPolicy();




    посылая запрос, просто включал проперть с содержанием ключа:


    request.ClientCertificates.Add(Babilon_Certificate);



    Теперь, кстати, если отрубить строки с подключением сертификата, ошибка не изменяется, как будто эти строки вообще не функционируют...
    Я в тупике, помогите советом :)((


    Огромное спасибо откликнувшимся ( etc, не сердитесь, если вопрос покажется Вам глупым :( ).
     
  2. khisrav

    khisrav Гость

    Перекомпилил прогу как aspx-веб страничку и все заработало, НО только из VS!!! При попытке опубликовать сайт на иис история повторяется. Если в VS отключить строки, где приаттачивается проперть сертификата и пустить проект на выполение - ошибка выходит та же. Получается, что на опубликованной проге неправильно используется или не используется сертификат, потому и фобиден дает. Скорее всего у аспнета или ииса нет доступа к сертификату... Как его обеспечить ???
     
  3. khisrav

    khisrav Гость

    проблему решил изменением web.config и machine.config =)
     
Загрузка...

Поделиться этой страницей