我已经在VS2010中为Classic ASP中的供应商Web应用程序创建了一个.NET程序集。
HKEY_USERS\S-1-5-20\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones
正在发生的事情是在登录验证期间使用程序集来查找根据其类型定义页面布局的用户类型。登录后第一次asp工作正常,返回没有错误的类型。但是,如果我注销或关闭页面并重新登录,ASP会在我的com对象中抛出一个错误,该对象没有设置为对象的实例。几乎就像GC在完成注册后没有拿起对象。 Object未设置为Global对象,仅用于验证Login页面。我尝试过处理而不是在经典的ASP页面中处理并得到相同的结果。
我对解决此问题需要采取的措施感到茫然。我花了最近3天阅读有关该主题的示例和主题,但我没有遇到过同样问题的其他人。任何想法,帮助或尝试的事情都将非常感激。
这是The Assembly Main
namespace rd_custom
{
[ClassInterfaceAttribute(ClassInterfaceType.AutoDual), EventTrackingEnabled]
public class rd_Custom
{
private rd_Logger rdLog;
private XmlDocument DADoc;
public String getRequesterType(String reqId, String dbProf)
{
//"Logic is Here to do user Lookups"
rd_sqlCon rdCon = new rd_sqlCon();
rdCon.rdLog = rdLog; // This is Disposed and Set to null later as well
rdCon.LoadSqlConfig(dbProf, "requester_type");
String[] parms = new String[1];
parms[0] = "requester_id|" + reqId;
DataTable dt = rdCon.builDataTable(parms);
rdCon.Dispose(); //*Answer
rdCon = null; //Previously was setting to null
return strRequesterType;
}
}
}
这是引用COM的经典ASP
Dim ls_requester_type
Dim rdCustomObj
Set rdCustomObj = Server.CreateObject("rd_custom.rd_custom")
*Err*ls_requester_type = rdCustomObj.getRequesterType(CStr(l_l_requester_id), CStr(l_s_db_profile))*
If ls_requester_type <> "ERROR" Then
Session("RequesterType") = ls_requester_type
End If
Set rdCustomObj = nothing