2017-02-09 71 views
1

私はMVC Webアプリケーションで作業しています。このアプリケーションは、展開時にアプリケーションと共に開始するジョブがquartz.netです。石英(サードパーティ製のDLL)はスケジューリングにのみ使用されていました。このスケジュールされたジョブはC#でコード化されています。この仕事はレポートを生成し、それをステークホルダーに電子メールで送ります。 Inorderは、データを作成してExcelに書き込むために、Microsoft Interopアセンブリに依存しています。このジョブは現在ローカル(開発ボックス)の微細な.Butそのリモート・アプリケーション・サーバーにデプロイする場合、以下のように、それは例外をスロー実行します:C#Excelの生成中にエラー「8000401a」

Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 8000401a The server process could not be started because the configured identity is incorrect. Check the username and password. (Exception from HRESULT: 0x8000401A).

観察: 私は、リモートサーバーにログオンした場合(デプロイメント・サーバ)エクセルの世代では、エクセルは電子メールで正常に送信されます。問題は、リモートアプリケーションサーバーからログオフしたときに発生します。私は解決策を探しましたが、何も解決しませんでした。何らかの方向性を予期している。前もって感謝します。

+0

生成は別のWindowsサービスで行われますか? –

+0

生成コードはMVCアプリケーション内にあります。プロジェクト内の別のC#クラスです。私はスケジューリング(Windowsサービスと同じ仕事をするdll)のためにQuartz .NETを使用します。これらのdllもプロジェクトに追加されます。また、アプリケーション開始イベントでは、スケジューラがスケジュールされた時間にC#コード(ジョブ)を起動して起動します。 –

答えて

0

あなたはこれを試すことができます。

  • は、スケジューリングや別のWindowsサービスでExcelファイルを生成するコードを抽出します。
  • ローカルシステムで新しいsericeにログオンします。

この方法では、ユーザーがログオンしているかどうかにかかわらずサービスが機能します。 Excelファイルが生成されるフォルダにアクセス許可を与えてください。

+0

私はこの点を理解していますが、コードを抜き出してこれを達成する方法があります。 –

関連する問題