一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
部署完成自己开发的TimerJob,发现“计时器作业定义”页面报错,进不去了,但是TimerJob可以正常运行,这样,肯定不行的,估计还是代码有问题,把这个脆弱的sharepoint页面搞死了。
如下图,http://URL/_admin/ServiceJobDefinitions.aspx未知错误,最烦人了,而且改了web.config也不抛
冷静下来,想了一下,可能有问题的几个点:
1、配置文件格式问题,删了配置文件,依然报错,而且格式有问题,基本上Timer服务起不来。
2、读取配置文件有问题,但是程序是控制台调好的,不应该。
3、本身有问题,这个先不靠谱,因为没改过,不应该。
4、代码本身有问题。
所以,查看日志,sharepoint日志和windows应用程序日志
查看windows应用程序日志,发现:
很明显,代码有问题,造成的问题。
注释掉excute函数里面的所有东西,重新部署TimerJob,居然依然报错;所以,一狠心,把所有我写的代码,都注释掉了,OK了;一部分一部分注释,看看哪部分出问题了。最后,发现
public static string SubHttpUrl = ConfigurationManager.AppSettings["SubHttpUrl"].ToString();
public static string WebService = ConfigurationManager.AppSettings["WebService"].ToString();
这两个变量声明有问题,放到方法里面,不用public static就可以了。如下:
string SubHttpUrl = ConfigurationManager.AppSettings["SubHttpUrl"].ToString();
string WebService = ConfigurationManager.AppSettings["WebService"].ToString();
查看一下:使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型,可能TimerJob不支持这样的声明,造成错误了,不像控制台程序。因为TimerJob调试起来不十分方便,所以基本都是从控制台中调试OK了,才改成TimerJob的,好吧,问题解决了,OK。挺简单的问题,挺简单的思路,记录一下,也给大家多个参考。
修改OK以后截图。
相关文章
一般情况下对IT管理者来说,在SharePointFarm中维护Feature,更喜欢使用命令行实现,这样可以省去登录到具体站点的操作。比如IT接到enduser的一个需求,要开启SiteCollectionFeature,如果直接操作......
2023-01-12
我们经常会在SharePoint网站集的权限列表中看到某个user有LimitedAccessPermission,但是我们都知道或者试过,在SharePointsitecollection中没有办法直接添加user赋予LimitedAccess权限,并且LimitedAccess这个......
2023-01-12
在这样的场景下,比如统计员工的个人信息,IT会在SharePoint中新建list,加一些需要填写的栏位,然后让公司员工登录填写。这时候比起大家都能看到彼此信息而言,从公司角度更想让员工只能......
2023-01-12
大多数企业使用SharePoint文档库时,都会建议EndUser在编辑文档前先做CheckOut动作,这样可以保证文档在当前用户编辑过程中,其他人只能view而不能edit,防止多人同时修改同一文件互相影响的......
2023-01-12
为了记录SharePointLibrary/List中file/Item的修改情况,ITAdministrator会在List/Library的VersionSettings中开启Version管控设置。之后用户每次编辑item/file保存就会生成一个新的version记录,这样我们就会知道......
2023-01-12