当频繁对ASP.NET程序进行改动时,c:windowsmicrosoft.netframeworkv1.1.4322Temporary ASP.NET Files
目录下相应的目录或文件会被Index Server锁定,导致重建索引,从而引发访问被拒绝的错误,一般几分钟后会释放并恢复正常,但这只是暂时的解决办法。
1、关闭Index Server:如果不需要使用Index Server,可以在服务里将其关闭,最好禁用,这样以后就不会再出现此类问题,具体操作如下:
进入控制面板->管理工具->服务,找到Indexing Service并点击右键将其停止。
或者在MS-DOS下输入Net stop cisvc
命令禁止。
2、配置Index Server不对该目录进行索引:此方法可以保留Index Server的使用,同时避免其对ASP.NET临时文件目录进行索引:
开始->管理工具->计算机管理(Win2003的位置,其他操作系统类似),打开计算机管理。
展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,再在其下展开“System”节点,再在其下展开“目录”节点。
在计算机管理的右边可以看到配置的索引服务目录,在“目录”节点上右击鼠标,选择“新建”->“目录”。
在“添加目录”对话框中,路径输入框中输入ASP.net的临时文件目录,默认应该是c:<WINDIR>Microsoft.NETFramework<Version Number>Temporary ASP.NET Files
目录(<Version Number>
指你要处理的.net版本)。
在“包含在索引中吗?”选项中,选择“否”,单击“确定”按钮。
在“索引服务”节点上右键单击,重起索引服务即可。
3、删除binXX.pdb文件:这种方法也可以解决该问题,但可能不是最根本的解决办法,不过在某些情况下可以尝试。
ASP.NET程序编译调试时偶尔出现访问被拒绝错误,主要是由于Index Server锁定了相关临时文件目录导致,可以通过关闭Index Server、配置其不对该目录索引或删除特定pdb文件等方法来解决,用户可根据自身需求选择合适的解决方案。