有COM+高手吗?请教
怎么没有COM+的专栏啊,只好贴在web service这里了。
我在做COM+时遇到很奇怪的问题,如果方法是实现接口的,那么异常就无法正常抛出。
例如:本人将代码简化,只写出出了问题的部分
Public Class Location
Inherits ServicedComponent
Implements IDataOper
Public Function Update() As String Implements IDataOper.Update
Dim tmpexUser As New UserException("ABCD")
'UserException继承了Exception,ABCD是错误消息。
Throw tmpexUser
End Function
End Class
这样的话在调用端就无法正常得到exception的message
调用端代码:
。。。。。。
Try
loc.Update()
Catch e As Exception
Console.WriteLine(e.Message)
End Try
。。。。。。
本来是应该显示"ABCD"的exception的message的,但出来的message却是"发生HResult为0x08131500的异常",但是一旦实现方法,输出就变得正常了。
Public Function Update() As String
Dim tmpexUser As New UserException("ABCD")
Throw tmpexUser
End Function
哪位高手能帮我解决此问题呢,谢谢
问题点数:0、回复次数:5Top
1 楼chenzhanyiczy(hi)回复于 2005-06-02 12:18:29 得分 0
你是把DLL部署到COM+时,然后调用才出现这问题吗?Top
2 楼qimini(循序渐进)回复于 2005-06-02 13:02:28 得分 0
不太明白搂主的意思~~~Top
3 楼bluesage(海蓝色)回复于 2005-06-02 13:17:35 得分 0
调用 Public Function Update() As String Implements IDataOper.Update 不正常
调用 Public Function Update() As String 正常
没有实现接口,那怎么调用的这个方法呢?Top
4 楼yshujin(等)回复于 2005-06-04 10:09:50 得分 0
回复人: chenzhanyiczy(hi) ( ) 信誉:100 2005-06-02 12:18:00 得分: 0
你是把DLL部署到COM+时,然后调用才出现这问题吗?
是的。。Top
5 楼yshujin(等)回复于 2005-06-04 10:16:17 得分 0
回复人: bluesage(海蓝色) ( ) 信誉:100 2005-06-02 13:17:00 得分: 0
调用 Public Function Update() As String Implements IDataOper.Update 不正常
调用 Public Function Update() As String 正常
没有实现接口,那怎么调用的这个方法呢?
一样是可以调用呀,,只不过不实现接口的话,当配置完组件之后,在组件服务里面看不到实现的接口而已。
做com+会关系到很多序列化的问题,有些我到现在还不能解决,真是麻烦。也找不到资料。希望有做过com+的朋友一起讨论,是不是真的这个东西就这么烂呢。
Top




