2010-09-29 79 views
0

我需要你的幫助。ASP Bizarre Session COM + Object Lost!

我在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的進程,回收機制(終生10分鐘)終止過程中引用此對象的那一刻丟失,爲此,我在我的應用程序中得到這個錯誤...

它有一些邏輯我在說什麼?參考文獻返回功能並在回收過程中保留此參考文獻?

我已經想盡辦法調試和剩下唯一的問題是究竟這個..

請幫助我的人!

回答

0

有關此問題的更多信息。

在我的調查中,我的組件函數返回一個xpto,xpto是一個VB類,包含其他函數和一些屬性。

如果我的應用程序調用asp會話給一個xpto類(來自com +),並且組件函數的dllhost被回收了,那麼com +存根的空引用是否正確? 而這個消息被appers

| 27 | 800a01ce | The_remote_server_machine_does_not_exist_or_is_unavailable: _'Session (...). name ' 

這是問題,我從COM +引用的類,我會和我的組件服務使用recyclind和合並策略?