我最近改变了一些AJAX查询使用ashx文件而不是aspx,发现Response.End
已不再流行。在我现在看的情况下,采购订单的提交由ashx处理。用户单击PO上的Submit按钮,ashx文件将时间和用户记录在数据库表中。包含当前用户数据(包括其主键)的对象存储在会话中,并由定制配置文件提供程序记录在该对象中。为了能够访问会话,我添加了IReadOnlySessionState
,但似乎除非访问另一个.net页面,否则配置文件提供程序不会运行,并且会话中没有值。 (通过代码验证)如何从ashx文件实例化配置文件?
我试过IRequiresSessionState
,但结果相同。
我假设System.Web.UI.Page
HttpHandler实例化自定义配置文件,如果它还没有,并且我需要将它添加到我的自定义HttpHandler。
我简短地看了一下HttpModules,但我不认为这是我想要的,因为它们会为每个请求加载。
你是说你正在使用自定义配置文件提供程序吗?该提供商是否将数据放入Session?这似乎是一个rube-goldberg机器。 – JJS
@JJS - 是的,是的。你说像Rube Goldberg机器不酷,大声笑。我在10年前从一个经典的asp网站的一个端口写了它。我怀疑我是这么做的,因为Profile似乎是放置这些信息的地方,asp应用程序使用Session来存储配置文件信息。回想起来,我可能应该使用配置文件自定义属性,或者可能作为访问会话的自定义配置文件的功能。其中任何一个都可以解决在访问会话之前实例化Profile对象的问题。 –
Rube Goldberg机器在工作时非常酷,但它们很难维持。如果我们知道十年前的时候,我们会以不同的方式做。后见之明是20/20。 – JJS