根据

http://msdn.microsoft.com/en-us/library/ms524620.aspx

您应该使用server.createObject


如果您已经熟悉VBScript或JScript,请注意,不要使用脚本语言的功能来创建新的对象实例(VBScript中的CreateObject或JScript中的New)。您必须使用ASP Server.CreateObject方法。否则,ASP无法跟踪您在脚本中对对象的使用。


但其他一些人则认为server.createObject意味着可以避免大多数情况的开销

http://classicasp.aspfaq.com/components/should-i-use-createobject-or-server-createobject.html


与Server.CreateObject相比,CreateObject的开销较小,因为后者使用MTS,这会导致大量开销。
当组件遇到错误时,您还将遭受性能下降,因为使用Server.CreateObject会将这些错误写入事件日志(顺便说一句,在调试过程中这很有用)。


要么

http://www.4guysfromrolla.com/webtech/043099-1.shtml


如果您正在编写一个处理事务的组件,这将变得很重要,因为通过MTS传递它是一个很好的安全网,因为您将使用MTS命令。但是,如果您不使用MTS,则可以通过将它们传递到Server.CreateObject来创建处理器和内存。这使使用CreateObject成为一个更好的主意,因为它可以直通。


因此,如果我不使用mts并且不需要访问内置asp的对象(例如set d = createObject(“ scripting.dictionary”)),就可以忘掉server.createObject并使用createobject)是可以的。

非常感谢...

最佳答案

您引用的那些文章有些过时了。由于Windows 2000及更高版本上的IIS 5和COM +使用直接的CreateObject与使用Server.CreateObject几乎相同。

现在,CreateObjectServer.CreateObject的MTS / COM +行为是相同的,部分原因是ASP本身作为COM +应用程序运行。您可以指定ASP页开始事务,然后使用CreateObject邀请任何实现IObjectContext的对象加入事务等。

我所知道的唯一真正的区别是遗留的东西,正在创建的COM对象可能具有OnStartPage和OnEndPage方法。使用Server.CreateObject可以在创建对象时和释放对象之前调用这些方法。 CreateObject不会发生这种情况。

09-26 01:09