我们正在使用dtSearch的ASP.NET 1.1版本,并且遇到影响我们的用户使用Active Directory(AD)进行身份验证的问题。此问题还影响到同一网站中的另一个自定义内部.NET 1.1 DLL。
当标准用户在一段时间不活动后点击搜索时,该网站将给出以下错误。在服务器管理员点击搜索页面后,它可以工作 - 这是一个奇怪的部分 - 然后最终用户可以点击搜索页面并运行查询。你知道造成这个错误的原因吗?
我们正在使用dtSearch 7.61(Build 7769)和.NET 1.1 dll。索引和网站位于同一台服务器上。
对于自定义DLL,会发生同样的事情。管理员必须在最终用户之前点击网页。
DLL是站点的本地DLL - 它们不在GAC中。我们在Windows Server 2003上。用户使用AD进行身份验证。
感谢您的帮助,
德克
-----原始信息----- 发送时间:2009年7月22日星期三上午8:13 主题:Extranet意外错误
用户访问外联网时发生错误。详情如下:
*应用程序名称:xxxxappnamexxxx
*错误时间:7/22/2009 8:12:54 AM
*错误类型:System.IO.FileLoadException
*错误消息:访问被拒绝:'dtSearchNetApi'。
*堆栈跟踪: 在SearchControls.SearchDAL.GetIndexId(String indexedDocumentPath) 在SearchControls.SearchDAL.GetAvailableDocuments(String areaName,Int32 crossArea,Int32 active,String categoryID) 在SearchControls.SearchDAL.Search(String areaName,Int32 crossArea,Int32 active,String categoryID,String strCriteria,Int32& TotalRowCount) 在SearchControls.SearchResults.SearchResult() 在SearchControls.SearchResults.Render(HtmlTextWriter输出) 在System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 在System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 在System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter编写器) 在System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter输出) 在System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 在System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 在System.Web.UI.Control.Render(HtmlTextWriter编写器) 在System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 在System.Web.UI.Page.ProcessRequestMain()
*表单变量:
*错误来源:SearchControls
* Error TargetSite:Int32 GetIndexId(System.String)
*登录用户:xxxdomainxxx \ xxxxxusernamexxxxxx
*用户IP:xxxxxxxxxxxxx
*模板路径:/Search.aspx
答案 0 :(得分:1)
您是否正在运行反病毒或任何类型的搜索索引器?已知一些此类应用程序可以保留DLL。
答案 1 :(得分:1)
您是否尝试运行Process Monitor以查看正在访问的程序集的线程标识?如果您使用Windows身份验证,则会尝试以实际用户身份访问资源。如果您的文件系统没有相应的权限设置,则可能导致拒绝访问。
只是一个虽然....虽然我不能肯定地说我怀疑可能有一个进程调用Assembly.Load并且它无法以用户身份命中程序集。当管理员访问它时,会将asembly加载到AppDomain中并为其他用户进行缓存。