0

誰かがこのコード スニペットの 1 行で構文を説明できるかどうか疑問に思います: doBgProcess 関数の下で、コントローラー クラスから呼び出しているときは正常に動作しますが、OnStart() 関数内のワーカー ロールから呼び出そうとすると、スローされます。例外「オブジェクト参照がオブジェクトのインスタンスに設定されていません」

    [Dependency]
    public IMembershipService IMemberhipSvcInst { get; set; }

    [Dependency]
    public IBenchmarkService IBenchmarkSvcInst { get; set; }
    #endregion
    public DashboardProcess()
    {
        //Resolving Dependency
       IMemberhipSvcInst = DependencyResolver.Current.GetService<IMembershipService>();

    }

 public bool doBgProcess(Guid userProfileId)
    {

            if (userProfileId != null && userProfileId != Guid.Empty)
            {
                IMemberhipSvcInst.GetAllUserEmails();
            }
          return true;
    }
4

1 に答える 1

0

Web ロール (コントローラーを含む) とワーカー ロールは、異なるマシンで実行されます。したがって、DependencyResolver が正しく機能するためには、おそらくGlobal.asaxで必要な初期化を行う必要があります。

ここで、WorkerRole.cs (別のマシン) または WebRole.cs (別のプロセス) で同じ DependencyResolver を使用する場合は、OnStart で IoC Container / DependencyResolver を初期化する必要もあります。 Web/WorkerRole.cs の

于 2013-03-01T06:57:12.647 に答える