3

クラス ライブラリを作成し、それが継承されていることを確認しました

DotNetNuke.Services.Scheduling.SchedulerClient

そして DoWork() サブをオーバーライドしました。

次に、dnn ホスト設定 > スケジューラーで、新しいスケジューラー項目を追加しました。

完全なクラス名とアセンブリ:

Namespace.Classname, Dllname

[スケジュールを有効にする] ボックスをオンにして、5 分の実行時間間隔を追加し、キャッチアップを有効にしました。

クラスが使用するテーブルのリストも追加しました。5つの履歴を残す

その後保存したのですが、

ビューのスケジュールステータスで、私はこれを取得します:

Name          |  Next Start              |  OverDue(s)  | Time Remaining
Sub reminder  |  11/12/2010 9:52:02 AM   |  3.5         |  0

要求モードでのスケジューラーの使用。

助けてくれてありがとう。


アップデート :

OK、「SubRenewal」という名前の新しいクラス ライブラリ プロジェクトを作成しました vb ファイルの名前を Test に変更し、以下をファイルに追加しました

Namespce Matts
 Public Class Test
  Inherits Dnn.Services.Scheduling.SchedulerClient
   Public overrides Sub DoWork()
     Me.ScheduleHistoryItem.addLogNote("I ran")
   end Sub
 End Class
End Namespace

スケジューラーページに次のように入力しました: Friendly Name Tester Full Class name and assembly Matts.Test,SubRenwal Enabled Yes Time Lapse 10 s Rety frequency - Run on Event None 他のすべてを空白のままにして保存しました。スケジューラまたはアイテム履歴にはまだ何もありません。また、イベントビューアには何もありません

4

2 に答える 2

2

まず最初に、Lakhlan に感謝します。彼がいなければ間違いに気付かなかったでしょう。

この問題は、最初の 2 つのうちの 1 つであると考えています。最初の 1 つは、出力テキストの一部をローカライズできるように、別のカスタム モジュールへの参照を登録していたことです。

また、以下に新しいコンストラクターを追加しました

Public Sub New(ByVal objSceduleHistoryItem As DotNetNuke.Services.Scheduling.ScheduleHistoryItem)
        MyBase.New()
        Me.ScheduleHistoryItem = objSceduleHistoryItem
    End Sub

ありがとうございます。あなたの助けに投票してください。

于 2010-11-12T16:19:14.753 に答える
2

スケジューラの開発とデバッグを開始するには、次の手順をお勧めします。

  • 新しいクラス ライブラリ probject を作成し、そこに dotnetnuke および関連する dll の参照を追加します。
  • 同じプロジェクトの参照を dnn プロジェクトに追加します
  • スケジューラーを実装するために新しい vb または c# ファイルを追加する
  • スケジュール履歴にエントリを作成するコード行を追加し、他のコードは追加しません
  • スケジューラをテストする
  • dotentnuke ウェブサイトのホスト アカウントから新しいスケジューラを登録します

新しいスケジューラ アイテムを追加するとすぐに、スケジューラが起動することに注意してください。これがお役に立てば幸いです。すでに持っているスケジューラのエントリを削除し、Web サイト インスタンス (iis または asp.net 開発サーバー) をリセットして、上記の方法を使用して再度追加することをお勧めします。

これがあなたを助けることを願っています

于 2010-11-12T13:25:40.423 に答える