web service 及 net remoting中调用com组件问题

jzhuang 2003-09-12 05:51:50
我用VC6 ATL做了个com组件,在winForm下调用一切正常;在asp.net中使用<%@Page AspCompat="true"%> 后调用也正常。
但是Web Services和.net remoting没有添加该属性的地方呀?怎样解决?在线急等!
问题一解决即刻给分结贴!对解决问题的大侠如嫌分少再开贴给分也可!谢谢了先!
...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzhuang 2003-09-15
  • 打赏
  • 举报
回复
首先谢谢各位的关注。我是这样调用自编COM组件的:
1 用regsvr32注册 组件 AA。
2 在vs.net 2003 的web service项目 P 中通过“添加引用”引入该com组件,然后在.asmx文件中using了引入的 AALib 。
3 在web 服务函数中使用该组件:
[WebMethod]
public string pTest(string sMsg)
{
string sRet;
try
{
AAClass aa = new AAClass();

_MyStruct myStruct = aa.Init( "d:\\temp\\conf.txt");
......
}
catch(......)
{
....
}
return sRet;
}

其中 _MyStruct 是我定义在组件aa中的结构体。

4 测试时,客户端调用web服务pTest,跟踪web service项目P,发现在执行到 aa.Init 时出现错误:

“未处理的“System.StackOverflowException”类型的异常出现在 p_webservices.dll 中。”

问题是:
我在另一个asp.net项目中使用同一组件,页面未加上<AspCompat="true"%>时也会出现同样错误,加上后就正常了。
但在web service 和 net remoting 中就不能这么办了。

听从“思归”的建议,我写一个.net类库,在类中处理组件的调用。然后用web service工程调用该类库。结果还是同样在组件调用时出现StackOverflow的错误。

愁死了,是不是那里我做错了?请各位再支支招吧,谢谢!
saucer 2003-09-15
  • 打赏
  • 举报
回复
"StackOverflow" normally means you have an infinite loop in your code, for example, are you using recursion? are you guarding against end condition?
jzhuang 2003-09-15
  • 打赏
  • 举报
回复
我尝试过调用COM组件中一个什么也不做的函数,仍然出现同样的错误。 会不会是因为该COM组件是 STA 的原因?
panyee 2003-09-14
  • 打赏
  • 举报
回复
用 regsvr32 C:\WinNT\system32\com组件名.dll
注册com组件

在.net项目中添加项目引用, 选com组件, 把你的dll选中,添加进来 , 自动帮你建立了代理类

你可以在 using 后打个Ctrl-J看到代理类新生成的命名空间

然后使用方法跟在asp中类似

xiaolin0987 2003-09-14
  • 打赏
  • 举报
回复
我是菜鸟,如何给一个com对象建立代理类
jzhuang 2003-09-13
  • 打赏
  • 举报
回复
通过“添加引用”已引入com组件,还需要什么操作?不太清楚具体过程,愿闻其详。谢谢!
xz_king 2003-09-13
  • 打赏
  • 举报
回复
panyee(快乐王子) 的方法可行。我也用过这样的方法。

下一个SOAP 3.0,它会帮你完成生成 web service 的。
saucer 2003-09-13
  • 打赏
  • 举报
回复
what error did you get? how are you calling the COM object?

The aspcompat attribute is not available to a Web service exposed through an ASMX file

try to write a wrapper class for your COM component and call the wrapper from your .net remoting/web service components
saucer 2003-09-13
  • 打赏
  • 举报
回复
what error did you get? how are you calling the COM object?

The aspcompat attribute is not available to a Web service exposed through an ASMX file

try to write a wrapper class for your COM component and call the wrapper from your .net remoting/web service components
panyee 2003-09-12
  • 打赏
  • 举报
回复
可以对com组件建立代理类, 在web service中使用代理类进行操作

调用代理类需要权限较高

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧