我有这个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);
}
IT工作,因为它要去PRepConsulta.aspx并执行UNDERCODE,但页面从未显示过。
我也受过试验:
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Xml)]
public static Boolean realizaConsulta(Dictionary<string, string> datos)
{
HttpContext.Current.Server.Transfer("PRepConsulta.aspx", false);
}
但是我发现了这个错误:
Microsoft JScript运行时错误:Sys.Net.WebServiceFailedException:服务器方法'realizaConsulta'失败,出现以下错误:System.Threading.ThreadAbortException-- Subproceso anulado。
我不知道可以尝试什么
感谢任何帮助
答案 0 :(得分:1)
我不确定“身份验证失败”部分,但WebMethod内部的Response.Redirect可能会破坏调用该方法的SOAP客户端。它期待布尔值,而不是重定向。
答案 1 :(得分:0)
好的,我要组织应用程序的流程:
来自我的客户端,在javascript中,我正在调用一个Web服务
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;
}
感谢