SharePoint發行版本有SharePoint2003、SharePoint2007、Sharepoint 2010、SharePoint2013和SharePoint2016。SharePoint提供了功能強大的團隊協作環境,使得組織能夠在整個組織內部實現整合、組織、查找和提供 SharePoint站點。 部署完成自己開發的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以后截圖。 Sharepoint 可以幫助企業用戶輕松完成日常工作。 |
溫馨提示:喜歡本站的話,請收藏一下本站!