Перенаправить новую страницу с сервера - PullRequest
0 голосов
/ 28 июня 2010

У меня есть этот WebMethod, который перенаправляет на другую страницу на этом сервере.

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public static Boolean realizaConsulta(Dictionary<string, string> datos)
{
    System.Web.HttpContext.Current.Response.Redirect("PRepConsulta.aspx", false);
}

Но я получаю эту ошибку:

Ошибка времени выполнения Microsoft JScript: Sys.Net.WebServiceFailedException: Метод сервера 'realizaConsulta' завершился ошибкой со следующей ошибкой: System.InvalidOperationException-- Проверка подлинности не удалась.

Что вызывает эту ошибку?


посмотрите другие варианты, которые у меня естьпробовал:

        [WebMethod]
        [ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
        public static Boolean realizaConsulta(Dictionary<string, string> datos)
        {
           System.Web.HttpContext.Current.Server.Execute("PRepConsulta.aspx", false);
        }

ЭТО РАБОТАЕТ, ПОТОМУ ЧТО ОНА ПРОДОЛЖАЕТ PRepConsulta.aspx И ВЫПОЛНЯЮ ПОДТВЕРЖДЕНИЕ, НО СТРАНИЦА НИКОГДА НЕ ПОКАЗЫВАЕТСЯ.*

НО Я ПОЛУЧИЛ ЭТУ ОШИБКУ:

Ошибка времени выполнения Microsoft JScript: Sys.Net.WebServiceFailedException: сбой метода сервера 'realizaConsulta' со следующей ошибкой: System.Threading.ThreadAbortException-- Subproceso anulado.

Я НЕ ЗНАЮ, ЧТО ЕЩЕ ПОПРОБОВАТЬ

СПАСИБО ЗА ЛЮБУЮ ПОМОЩЬ

Ответы [ 2 ]

1 голос
/ 28 июня 2010

Я не уверен насчет части «аутентификация не удалась», но Response.Redirect внутри WebMethod, вероятно, сломает клиент SOAP, который вызывает метод. Ожидается логическое значение, а не перенаправление.

0 голосов
/ 28 июня 2010

хорошо, я собираюсь организовать поток приложения:

от моего клиента, в javascript, я вызываю веб-сервис

PageMethods.realizaConsulta (Datos);

в моем коде я должен выполнить pageMethod и вызвать другую страницу

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public static Boolean realizaConsulta(Dictionary<string, string> datos)
{

    clsGeneral consulta;
    DataTable dtTemp = new DataTable();

    using (consulta = new clsGeneral("SQLConn"))
    {
        consulta.consultaPrograma(ref dtTemp, datos["Codigo"],  Int16.Parse(datos["Cod_Actividad"]), Int16.Parse(datos["Cod_SubActividad"]), datos["FechaIni"], datos["FechaFin"]);
        HttpContext.Current.Session["Consulta"] = dtTemp;

    //THIS ARE THE 3 DIFFERENT WAYS I HAVE TRIED TO CALL THE PRepConsulta.aspx,
    //I DONT KNOW IF THERE IS A BETTHER WAY TO DO IT

    //System.Web.HttpContext.Current.Response.Redirect("PRepConsulta.aspx", false);
    //HttpContext.Current.Server.Transfer("PRepConsulta.aspx", false);
    //System.Web.HttpContext.Current.Server.Execute("PRepConsulta.aspx",writer, false);
    }
    return true;
}

СПАСИБО

...