使用WebDeploymentProject之后的空引用问题

上次那个空引用的问题解决之后并没有消停太久,目前需要使用WebDeploymentProject生成出来的Release版本进行布署,在本机测试通过但是传到服务器上面就死活出不来,一打开其中的页面就报空引用,开始以为是目录权限的问题,后来居然给目录Everyone的完全控制权限都还不行,看来是代码方面出了问题了,不过本地测试时又是好好的。

再回头仔细看看出错时的堆栈跟踪信息,是报一个与Microsoft Atlas相关的一个方法调用
System.Web.Script.Services.WebServiceData.GetWebServiceData(Http

Context context, String virtualPath, Boolean failIfNoData,

Boolean pageMethods) +378
,我们网站里面使用了很多基于ATLAS AJAX的应用,会不会跟此有关呢,上网上一下原来这个问题是由于ATLAS RC1的一个BUG引起的,这里是原文。看到这里忽然想起来一件事情,ATLAS RC1刚出来的时候我安装了之后添加删除程序里面看到的版本号上并没有带上RC的标识,换句话说,不论是RC版还是正式版仅从这里的名称上是分辨不出来的!,一看大小1.25兆,立即就明白了,正式版安装出来应该是1.78兆, 服务器上装的还是RC版的ATLAS,从asp.net上下载一个正式版的,重装之后重起网站就正常了。

出现这个问题的条件有3个:

1.网站使用了WebDeploymentProject来发布.
2. 安装了RC版的ATLAS组件.
3. 在发布工程里面去掉了钩选“允许生成的网页被更新”

总的说来, WebDeploymentProject还是蛮不错的,使用不允许更新生成页面的选项之后前台页面被预编译了速度加快了不少,而且页面上也看不到HTML源代码了对程序本身也起到一种保护作用. 这时打开任意一个页面文件只会显示"这是预编译工具生成的标记文件,不应被删除!", ;)

posted on 2007-10-20 17:29  沙加  阅读(466)  评论(1编辑  收藏  举报

导航