今天我把Web站点部署到服务器上之后,出现了TreeView控件不能显示图标的问题。起先我以为是虚拟目录的问题,因为我在开发时用的是虚拟目录。把服务器上的Web网站换成虚拟目录后问题依旧。
我的这个网站是基于.net
3.5开发的,用的TreeView控件是.net自带的,.net 1.1
时的那种复制aspnet_client文件夹到网站根目录的方法已不适用了。
我在网上查了下这个问题的解觉方法,不外呼以下两个:
1、
在Web.Config中添加添加了
- XML code
-
<httpHandlers><add
path= "WebResource.axd "
verb= "GET " type=
"System.Web.Handlers.AssemblyResourceLoader "
validate= "True
"/></httpHandlers>
我试了这个方法,完成没有效果。
2、
IIS中添加映射:
- XML code
-
可执行文件: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
打入浏览器出现了:
- C# code
-
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年。把服务器上的时间改正确之后,这个问题就解觉了~~