簡體   English   中英

Sharepoint 2013自定義計時器作業在開發服務器上運行,但不在生產服務器上運行

[英]Sharepoint 2013 Custom Timer Job running on development server but not on production server

我已經在Visual Studio 2012中為SharePoint 2013開發了一個自定義計時器作業,該作業發送電子郵件通知。 問題是它在開發服務器上工作正常。

我已按照以下步驟在開發服務器上對其進行調試。1.)在相應站點上部署計時器作業。 2.)在services.msc重新啟動計時器服務。3.)然后在Visual Studio中附加到進程OWSTIMER。 4.)最后,轉到SharePoint 2013管理中心->監視->審查作業定義,然后單擊相應的計時器作業並說立即運行。

完成此操作后,在Visual Studio中的Execute()方法中命中斷點。 因此,它在開發服務器中正在運行。

現在,在生產服務器上,我無法使用Visual Studio進行調試,因此我已經部署了打包的解決方案(.wsp)。

我可以在“網站集管理”->“網站集功能”中看到該功能已激活。

現在,在生產服務器上,我按照以下步驟操作:1。)在services.msc重新啟動計時器服務。2。)最后轉到SharePoint 2013管理中心->監視->查看作業

為了進一步測試計時器作業是否在生產服務器上運行,我使用了PortalLog.LogString("Flow test1"); 在Execute()方法的開頭。 現在,它在開發服務器上運行,並且我在SharePoint日志中看到該消息,但是在生產服務器上,單擊中央管理員中的“立即運行”后,在日志中看不到“ Flow Test1”。

誰能說出問題所在和可能的解決方案?

在我看來,有兩個問題:

  1. 您應該使用其他方式記錄LoggingService應該是首選方式。 使用WriteEvent寫入EventLog或使用WriteTrace寫入ULS日志。
  2. 正在運行的工作。 確保所有Web服務器上的Owstimer.exe服務都已重新啟動(可以通過此powershell腳本完成 )。 我希望您已經在Powershell腳本或功能接收器中正確安排了工作。

這里有一些嘗試:

  • 轉到管理中心並從那里運行計時器作業。 然后轉到作業歷史記錄頁面,檢查它是否成功完成。 如果有錯誤,您應該從那里看到錯誤消息。 這將為您提供有關發生情況的線索。
  • 正如Mazin所說,重新啟動所有服務器中的計時器服務。 部署后,該進程將緩存DLL,並且您看不到更改。
  • 瀏覽SharePoint日志並搜索異常或錯誤。 您可以通過選擇工作運行的時間范圍來縮小搜索范圍。 您可以使用以下PS腳本:

Get-SPLogEvent -StartTime "02/02/2014 11:00" -EndTime "02/02/2014 13:00" | Out-GridView

如前所述這里似乎你的工作集未在GAC部署。 驗證那里存在該程序集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM