【问题标题】:Error on Calling Response.Redirect in the WebService Event ResponseWebService 事件响应中调用 Response.Redirect 时出错
【发布时间】:2017-06-17 19:45:17
【问题描述】:

我无法在 Web 服务事件上调用 Response.Redirect 我的代码是:

页面加载

 if (!Page.IsPostBack)
        {
            PublicService.WebService1.Select_Category_By_Type_And_EntityTypeCompleted += WebService1_Select_Category_By_Type_And_EntityTypeCompleted;
            PublicService.WebService1.Search_SuggestCompleted += WebService1_Search_SuggestCompleted;

        }

关于事件代码

 if (e.Error == null)
        {
            if (e.Result.Length > 0)
            {
                ViewState["SearchSuggest"] =Language.HelperD.SerializeDataContent( e.Result.ToList());
                Timer1.Enabled = true;
               // Session["SearchSuggest"] = ViewState["SearchSuggest"];
                Response.Redirect("../Suggest/SearchResult.aspx", false);
            }
        }

错误是 System.Web.dll 中出现“System.Web.HttpException”类型的异常,但未在用户代码中处理

附加信息:在此上下文中没有响应。 在这种情况下没有响应。

Next Error ON 设置 Session

错误是: 会话状态只能在 enableSessionState 设置为 true 时使用,无论是在配置文件中还是在 Page 指令中。还请确保 System.Web.SessionStateModule 或自定义会话状态模块包含在应用程序配置的 \\ 部分中

我的配置是: 请参阅 enableSessionState="true" !

<%@ Page Title="" Language="C#" MasterPageFile="~/Base.Master" AutoEventWireup="true" Async="true" EnableSessionState="true" CodeBehind="SearchResult.aspx.cs" Inherits="TourismWeb.Suggest.SearchResult" %>

还有……

<pages  theme="DeltaModerno1" controlRenderingCompatibilityVersion="4.0" enableSessionState="true" validateRequest="true" clientIDMode="AutoID" asyncTimeout="999999" enableViewStateMac="false" enableViewState="true">
  <controls>
    <add tagPrefix="dx" namespace="DevExpress.Web" assembly="DevExpress.Web.v16.2, Version=16.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
    <add tagPrefix="ajaxToolkit" assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" />
  </controls>
</pages>

【问题讨论】:

  • if (e.Error == null) .... 代码在哪里运行?在网络服务中?如果是这样,您需要在服务返回结果后在调用 web 服务的代码中处理重定向...
  • 我检查了 Web 服务错误,它是真的,请求没有错误。

标签: asp.net forms wcf events


【解决方案1】:

尝试通过HttpContext访问:

HttpContext.Current.Response.Redirect("../Suggest/SearchResult.aspx");

【讨论】:

  • 也许可以修复 Response.Redirect 但我无法设置 Session["SearchSuggest"]
  • 您需要在包含要访问Session 的事件处理程序的页面中实现IRequireSessionState 接口。更多信息:msdn.microsoft.com/en-us/library/…
  • 如何使用 IRequireSessionState ?!!如果 if (Context.Handler is IRequiresSessionState) 它返回 true,我会检查它!
  • @Arman,看看这个 StackOverflow 问题:stackoverflow.com/questions/1375627/…
  • HttpContext.Current.Session["SearchSuggest"] = ViewState["SearchSuggest"]; HttpContext.Current.Response.Redirect("../Suggest/SearchResult.aspx");
猜你喜欢
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多