我需要你的很多帮助。
我在ASP中有一个应用程序,而不是ASP.NET ...它使用了为我开发的几个COM +组件。
以下是使用其中一个组件的示例。
Dim componentXPTO
Dim xpto
componentXPTO = Server.CreateObject("NAMESPACE.XPTO")
Set xpto = componentXPTO.myFunction(variables)
Set Session("XPTO") = xpto
Set componentXPTO = Nothing
Set xpto = Nothing
---------------------------------
Session("XPTO").name
我遇到的问题是断断续续的。我在会话中多次访问变量XPTO而没有任何问题。因此,此代码正在运行。发生的情况是,有时当我在相同的用户会话中访问相同的变量XPTO时,会发生以下错误:
| 27 | 800a01ce | The_remote_server_machine_does_not_exist_or_is_unavailable: _'Session (...). name '
我的怀疑是,当XPTO对象从COM +函数返回时,保持对进程的dllhost引用以及循环机制(Lifetime 10 minuts)终止进程的那一刻对这个对象的引用丢失了,为此我我的应用程序中出现此错误...
它有一些我正在谈论的逻辑?返回带有参考的功能并在回收过程中保留此参考文献?
我已经尝试过各种方式进行调试,剩下的唯一问题就是这个......
请有人帮助我!
答案 0 :(得分:0)
有关此问题的详细信息。
在我的调查中,我的组件函数返回一个xpto,而xpto是一个包含其他函数和一些属性的VB类。
如果我的应用程序调用asp会话给了一个xpto类(来自com +)并且组件函数的dllhost被回收,那么com + stub的空引用是否正确? 这条消息是上诉
| 27 | 800a01ce | The_remote_server_machine_does_not_exist_or_is_unavailable: _'Session (...). name '
这是问题,我在会话中有一个来自com + reference的类,我的组件服务使用了recyclind和pooling策略?