テンプレート.xltおよび.rptを使用して(Crystalを使用して)ExcelおよびPDFレポートを生成するMVC Webアプリケーションがあります。テンプレートをWebサーバー自体に配置すると、グリッチなしでレポートが生成されますが、テンプレートをリモートに配置すると、場所を確認すると、プロセスモニターで確認したアクセス拒否エラーが発生します。以下のスクリーンショットをご覧ください。
サーバーからエクスプローラーを介してリモートフォルダーを手動で参照すると、すべてOKで、必要なファイルを開くことができます。サーバーがファイルを読み取るときに、アクセス拒否エラーが発生します。私のWebアプリケーションは、統合パイプラインでApplicationPoolIdentityを使用しています。認証は、なりすましとWindows認証を介して行われます。さらに紛らわしいのは、Excelテンプレートを実行するユーザーは私自身ですが、PDFの生成に使用されるユーザーがIIS Apppoolであるのに対し、アクセスが拒否されることです。
アクセス拒否の問題を解決する方法を知っている人はいますか?私はすでにすべてのユーザーをそのフォルダーにフルアクセスさせようとしましたが、それでも機能しません。
追加情報
IIS 7.5を使用しています。また、共有が存在するファイルサーバーを確認しました。イベントログでは、登録したユーザーは私ではありませんが、次の詳細が含まれています。
An account was successfully logged on.
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Type: 3
New Logon:
Security ID: ANONYMOUS LOGON
Account Name: ANONYMOUS LOGON
Account Domain: NT AUTHORITY
Logon ID: 0x90eb7c7
Logon GUID: {00000000-0000-0000-0000-000000000000}
Process Information:
Process ID: 0x0
Process Name: -
Network Information:
Workstation Name: MYWEBSERVER
Source Network Address: 10.10.10.01
Source Port: 00000
Detailed Authentication Information:
Logon Process: NtLmSsp
Authentication Package: NTLM
Transited Services: -
Package Name (NTLM only): NTLM V1
Key Length: 128
アップデート
このインスタンスではApplicationPoolIdentityを使用する必要があるため、ApplicationPoolIdentityを引き続き使用できるソリューションを探しています。
別の更新
以下の@Davidsの提案を試しましたが、同じエラーメッセージが表示されます
System.Runtime.InteropServices.COMException(0x800A03EC):MicrosoftExcelはファイル'\ MyServer \ Templates\MyTemplate.xlt'にアクセスできません。考えられる理由はいくつかあります。
•ファイル名またはパスが存在しません。•ファイルが別のプログラムによって使用されています。•保存しようとしているブックは、現在開いているブックと同じ名前です。Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename、Object UpdateLinks、Object ReadOnly、Object Format、Object Password、Object WriteResPassword、Object IgnoreReadOnlyRecommended、Object Origin、Object Delimiter、Object Editable、Object Notify、Object Converter、Object AddToMru、Object Local、Object CorruptLoad)at Ci.Infrastructure.Reporting.ReportProviderExcel.RunReport()