今天我把Web站点部署到服务器上之后,出现了TreeView控件不能显示图标的问题。起先我以为是虚拟目录的问题,因为我在开发时用的是虚拟目录。把服务器上的Web网站换成虚拟目录后问题依旧。
我的这个网站是基于.net 3.5开发的,用的TreeView控件是.net自带的,.net 1.1 时的那种复制aspnet_client文件夹到网站根目录的方法已不适用了。
我在网上查了下这个问题的解觉方法,不外呼以下两个:
1、 在Web.Config中添加添加了 
<httpHandlers> 
<add  path= "WebResource.axd " verb= "GET "  type= "System.Web.Handlers.AssemblyResourceLoader "   validate= "True "   /> 
</httpHandlers>我试了这个方法,完成没有效果。
2、 IIS中添加映射:
可执行文件:C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_isapi.dll 
扩展名:.axd 
限制为:GET,HEAD,POST,DEBUG 
并且去除“确认文件是否存在”的勾。  这个映射,我在服务器上看了一下,完全是存在的。上面这两个方法对我完全没有用,怎么办呢,Google、CSDN搜出来的解觉方法都是上面那两个。我注意到,伴随着TreeView图片不能显示的问题同时出现的还有一个脚本语法错误,我把这个脚本Url地址
http://xx.xx.xx.xx/WebResource.axd?d=lS1N8bYIs7We9Gw-ayh2mw2&t=633742087439218750
打入浏览器出现了:
System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: utcDate
   在 System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate)
   在 System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)
   在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)出现了参数已超出有效值的范围的异常。我注意到“参数名: utcDate”,难道这跟时间有关吗?我查看了服务器上的时间,唉!服务器的时间被设到了2006年。把服务器上的时间改正确之后,这个问题就解觉了~~

解决方案 »

  1.   

    原因可能是程序集创建的时间与服务上的时间进行了比较。
    程序集创建时间为2009年6月26日。
    服务上的时间被设为了2006年6月26日。
      

  2.   

    原因可能是程序集创建的时间与服务器上的系统时间进行了比较。 
    程序集创建时间为2009年6月26日。 
    服务器上的系统时间被设为了2006年6月26日。程序集创建时间 > 服务器上的系统时间,所以抛出了异常。
      

  3.   

    感谢 看了以后我也解决了这个问题
      

  4.   

    神啊~你就是我的神~呼天抢地跪谢~折磨我三天了~他奶奶的,怎么好好的就成了2006年呢~我的服务器也是~
      

  5.   

    哈哈 找了很多 都解决不了  原来是时间问题   郁闷惨了    感谢楼主  我的也是解决了