<%@ENABLESESSIONSTATE=False %>
对于一些简单的数据,您可以使用 QueryString cookie 或隐藏的窗体域保持 ASP 请求间的状态。然后,对于更为复杂的信息,通常推荐您使用数据库。一般所采用的方式是生成某一特有的标识符,然后发送到每一个发出请求的客户机,并保存为隐藏的窗体域。在随后的请求中,这一特有的标识符被用于在数据库中查找与该用户相关的状态信息。这一方式提供了更高的可伸缩性和更为简洁明了的代码。
有关使用 QueryString cookie 和隐藏的窗体域的详细信息,请参阅“Q175167 HOWTO: Persisting Values Without Sessions”(英文)。
在创建 ASP 技术的对象时,您可以选择 <OBJECT> 标记、Server.CreateObject 和 CreateObject 三种方式。每项技术的行为略有不同。尽管在 IIS 4.0 中,使用 <OBJECT> 标记或 CreateObject 比 Server.CreateObject 略具性能优势,我们一般还是推荐使用 Server.CreateObject, 以便于 ASP 应用程序认知您的对象。(注意在 IIS 5.0 中,前两项与 Server.CreateObject 相比,已经没有性能优势。)
<OBJECT> 标记仅在调用第一个方法时才会创建组件,因此能够节省资源。Server.CreateObject 使用 ASP 技术内置的 Server 对象创建组件。实质上,它只是执行了 CoCreateInstance,但是 ASP 却能够认知这一对象。同时,还将调用 ASP 技术的传统的 OnStartPage 和 OnEndPage。(注意最好在 IIS 4.0 或者更高版本中使用 ObjectContext)。如果您只是使用 CreateObject,您将越过 ASP 技术而直接使用 Scripting 引擎。
以下是一个可能出现的例外情况:当您通过防火墙进行调用时,您可能需要调用 CreateObject 而不是 Server.CreateObject。详细信息,请参阅“Q193230 - PRB: Server.CreateObject Fails when Object is Behind Firewall”(英文)。
确保在您所有的 ASP 应用程序中都包含了错误处理过程。而且,确保您提供了有用的诊断信息。我还没有碰到有哪个人抱怨错误信息太具有说明性了。请确保在错误日志中包含以下信息:
因为将在 ASP 下运行,您可能希望将这些信息写到文件或 NT 的事件日志。您还可以创建记录关键的应用程序事件的应用程序事件日志,以备诊断应用程序错误时使用。
以下文章提供了有关错误处理技术的详细信息:
浏览器并不是准确的测试方式,它只能向您展示应用程序可能的用途。请针对您的应用程序设置特定的性能目标,并使用 Web Application Stress Tool 等负载工具进行压力测试。您需要自己决定您的环境所能接受的条件,以