描述:
用VC.NET做一个ATL ASP组件,假设是TRY.1,再加一个方法,test(LONG ss) (可以是任何类型参数,实际代码可以用默认的,不用添加任何东西)
现在编译,在ASP里引用:
set ff=server.createobject("try.1")
ff.test request("d1")
保管IIS服务器都会宕了,而用VC6.0做就不会有问题。
问题究竟在哪里呢?如何解决?
不相信的可以自己试验呀
解决方案1:
能不能把你的解决方法贴出来啊?
我也在写ASP组件,遇到一些问题。
跟线程模型无关
解决方案3: 类型不匹配有可能会导致ASP的DLL当掉
隔离程度为低的时候
也有可能导致IIS当掉
很简单,只要你的组件里面有一个异常
ASP就会当掉了
你在com中的数据类型为LONG
所以用 request("dl")作为参数是错误的
直接用数字6来调用是成功的
request("dl")是VARIANT类型
用VARIANT传递给LONG型参数
结果可能是未知的
解决方法就是把你的方法的参数改成VARIANT类型
在方法内部通过判断variant的类型并进行适当的转化
或者干脆采用BSTR类型
因为你的request("dl")应该是个字符串
你需要使用regasm注册你的组件
set ff=server.createobject("命名空间.类名")
masterz大虾都出来了!哈哈!
怎么可能呢?vc6下没有问题到.net下就更没有问题了!
对asp不太懂!首先你应保证你的对象创建成功,我去试试!
一般progid 的样子是下面这样的,不知道你是否少写了一些
ProgID = s 'AcceptArray.ArrayTest.1'
VersionIndependentProgID = s 'AcceptArray.ArrayTest'
会不会是权限的问题?
您可能想查找下面的文章:
- 现有一个lib和其用到的h头文件,问在一个新的vcnet工程中如何引用和调用(求步骤和程序)
- 如何在VCNET中使用MSFlexGrid,有帮助文档吗
- 十万火急,VCNET调用COM的问题
- 请问如何用vcnet建立activedll呢?
- vcnet怎么建立activexdll工程
- 请问一个关于vcnet下com组件调用的问题
- 在VCnet中怎么看不到BEGIN_OBJECT_MAP了?
- 我用MFC写了个自动化exe,但是在别的没安装VCnet的机器运行exe时注册失败。[急]
- VCNET经典老问题,网上找了半天还是不知道怎么解决``大家指点一下``急
- 急急急急vc60或vcnet如何做com组件上传组件在线等待进者都有分贡献出我所有分