熟悉MTS的同仁,赶快进来拿分!! (180分)

  • 主题发起人 主题发起人 宁柯
  • 开始时间 开始时间

宁柯

Unregistered / Unconfirmed
GUEST, unregistred user!
最近作了一个MTS的Demo,我在创建Active Server Object的时候选中的就是Object Context
的方式,为什么我把它注册到‘组件服务’里面当作一个MTS对象以后,在ASP里面CreateObject
这个对象以后,调用它的任何Method都不管用! 甚至我故意把Method的名字写错,但在IIS
里面也不报错!! 但是如果我把它注册一下(就是RegSrv32)在ASP里面就能用!! 为什么啊?

欢迎大家参与讨论,和我一样不知道一起听听高手讲课!请高手赐教!

 
请大家参与讨论阿!
 
我觉得这位兄弟可能没搞清楚 com 和 COM+的区别。
就我的理解是,COM+是MTS环境中的一种组件规范,适它能够
利用MTS整个环境的资源。所以才有“MTS当中才可以享有数据库
连接Pooling的优惠政策”之说。一般com只是达到了组件复用的目的,
无方享受MTS整个系统环境的支持。

至于操作逻辑如何封装。还很大程度上取决你们团队的“需求获取能力”,
“设计能力”和“实现能力”。理论上将应该把具体操作包装起来,
具体客户代码只对接口进行调用。但如果,以上能力不强,我建议还是
采取一些技术门槛更低的实现方式,可能更加实惠一些。
 
To tuti:
谢谢参与,您所说的COM和COM+这些区别,我还是知道一点点的! 只是现在虽然看了
李维的那几本多层式分布编程的书,反而更有点不知所措了,如果不看的话,其实都用ASP
也可以实现的,但是现在看了,既然知道有更好的方法来解决,那么我想请教一下各位有
这方面经验的仁兄,回答我一下上面的一些疑问,谢谢~!
请大家积极参与,如果最后没有好的答案,所有的参与者都有分!!!!
 
啊呀! 大家还是不说话啊! ^_^

UP有分
 
com+=mts+com
 
我在这个Active Sever Object仅仅定义了一个Method和公布了一个接口而已,以下是代码
----------------------------------------

unit uMts01;

{$WARN SYMBOL_PLATFORM OFF}

interface

uses
ComObj, ActiveX, AspTlb, pMts01_TLB, StdVcl;

type
TMts01 = class(TASPMTSObject, IMts01)
protected
procedure Test; safecall;
function Get_P1: Integer; safecall;
end;

implementation

uses ComServ;

procedure TMts01.Test;
begin
Response.Write(' MTS');
end;

function TMts01.Get_P1: Integer;
begin
Result := 100;
end;

initialization
TAutoObjectFactory.Create(ComServer, TMts01, Class_Mts01,
ciMultiInstance, tmApartment);
end.

---------------------------------------
以下是在ASP里面调用这个Object的过程
<HTML>
<BODY>
<TITLE> Testing Delphi ASP </TITLE>
<CENTER>
<H3> You should see the results of your Delphi Active Server method below </H3>
</CENTER>
<HR>
<% Set DelphiASPObj = Server.CreateObject("pMts01.Mts01")
DelphiASPObj.Test
Response.Write(DelphiASPObj.P1 & "123")
%>
<HR>
</BODY>
</HTML>
---------------------------------------
假如我要是把这个MTS组件注册到‘组件服务’里面(就是在Delphi里面Install COM+ Object )
在上面的ASP里面,它就不会有任何输出,甚至我故意把公布的接口P1写成P2,或者把Method
Test写成随便什么东西,它都不会报错,但是试试证明,的确激活了这个MTS组件服务,真的很奇快!
如果我RegSrv32这个组件(就是在Delphi里面Resesiter ActiveX Server),而不注册到
‘组件服务’里面(就是不Install COM+ Object),就能在ASP里面正常运行,为什么啊???
神啊! 救救我把!
 
大家参与讨论啊~
 
啊呀 拜托啊 高手说话啊! 即便您也不会,那么UP一下也可以得啊!

UP也给分!
 
嗨! 生气!! 白浪费这些分数,现在都已经解决了!

以后遇到问题了,可不能随便在大富翁里面发问了,因为问出去的问题就像泼出去的水,
自己知道答案了,也不能收回! 算了吧! 算了吧! 见着有分,谁在这里UP我都给分,
大家跟近来UP吧! 都给分!
 
上,不,呵呵
 
谢谢你的源码了!本来是来给你UP的.....


:///~
 
多人接受答案了。
 
后退
顶部