部署步骤“激活功能”中出现错误: 未将对象引用设置到对象的实例。(解决方法转自沙舟)...

文章描述了在部署使用脚步创建的定时器作业时遇到的错误,并通过改进代码解决了问题。改进后的代码能够正确处理properties.Feature.Parent可能为SPWeb或SPSite的情况,确保在激活功能时不会出现未将对象引用设置到对象的实例的错误。

新写了个定时器作业,用脚步部署,激活时提示未将对象引用到实例化。

调试模式跟踪了一下代码,发现 SPSite site = properties.Feature.Parent as SPSite; 中properties.Feature.Parent能得到值,但是site总是得到null,百思不得其解。

然后尝试激活以前写的正常部署过多定时器作业,报错依旧,怀疑自己的环境出来问题,最后无果。

突然在网上看到别人写的一段代码,于是想到properties.Feature.Parent只是个object,不一定是site,也可能是web,于是改进代码如下:

            SPSite site;
            if (properties.Feature.Parent is SPWeb)
            { site = ((SPWeb)properties.Feature.Parent).Site; }
            else
            { site = (SPSite)properties.Feature.Parent; }

果然一切正常~

------------------------------------------------------------------------------------------------------------------------------------------------------------

以上为沙舟的帖子

-------------------------------------------------------------------------------------------------------------------------------------------------------------

我在调试的时候,vs2010报错信息为:(错误 1 部署步骤“激活功能”中出现错误: 未将对象引用设置到对象的实例。)

也是properties.Feature.Parent as SPSite这句话。看到沙舟的博文,成功解决。在此进行记录,以备以后开发的不时之需。

posted on 2012-10-15 16:48 猛梦源 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/casperlong/archive/2012/10/15/TimerJobQuestion1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值