IIS アプリケーションは、一時フォルダーへの書き込みに問題があるようです (Excel Interop を利用するために必要です)。
パス「C:\Temp\temp_file_name.xlsx」へのアクセスが拒否されました。
例外の詳細: System.UnauthorizedAccessException: パス 'C:\Temp\temp_file_name.xlsx' へのアクセスが拒否されました。
スタック トレースは次のとおりです。
[UnauthorizedAccessException: Access to the path 'C:\Temp\temp_file_name.xlsx' is denied.]
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +10550675
System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite) +863
System.IO.File.Copy(String sourceFileName, String destFileName) +12
ExcelOperations.FileHelper.CopyFile(String sourcePath, String destinationPath) +477
WebExtensions.PersonalPriceListDataExchange.CreateNewQueryBtn_Click(Object sender, EventArgs e) +427
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981
今、すべてのアカウントで、これは典型的な「アクセス許可の欠如」のケースのように見えますが、特別なグループ「Everyone」のフルアクセスを許可するように一時フォルダーを既に変更しています...
何が欠けている可能性がありますか?
編集:
言い忘れました!
管理者アカウントを使用してサイトにログインすると、アプリケーションが機能します。ただし、他のアカウント (IIS サイトに正常にログインしているにもかかわらず) は、そのフォルダーにアクセスできません。繰り返しますが、奇妙なことに、「Everyone」にフル アクセスを許可しましたが、まだ機能していません。
問題のアプリケーションは MS CRM 4.0 拡張 (CRM ISV フォルダー内に存在するため、サブサイトです) であり、CRM 自体と同じアプリケーション プールを使用します。ただし、これが CRM 自体に何らかの形で関係しているのかどうかは疑問です。IIS /権限の問題である可能性が高いと思います。
編集2:
アプリケーションに簡単なコードを追加しました。
throw new Exception(Page.User.Identity.Name + " " + HttpContext.Current.User.Identity.Name);
明らかに、これは現在使用されている ID の現在の名前をスローします。ID は問題ありません。つまり、ドメインに属する通常のユーザーです。この特定のユーザーを追加して、フォルダーのアクセス許可を与えることもできますが、それでも失敗します。:(
編集3:
一時フォルダーの監査を有効にしました。
結果は次のとおりです(一部の情報を編集する必要がありました):
A handle to an object was requested.
Subject:
Security ID: -the domain and login of the currently logged user-
Account Name: -the current username-
Account Domain: -the current domain-
Logon ID: 0x5e3194d
Object:
Object Server: Security
Object Type: File
Object Name: C:\Temp\temp_file_name.xlsx
Handle ID: 0x0
Process Information:
Process ID: 0x13f0
Process Name: C:\Windows\System32\inetsrv\w3wp.exe
Access Request Information:
Transaction ID: {00000000-0000-0000-0000-000000000000}
Accesses: DELETE
READ_CONTROL
SYNCHRONIZE
ReadData (or ListDirectory)
WriteData (or AddFile)
AppendData (or AddSubdirectory or CreatePipeInstance)
WriteEA
ReadAttributes
WriteAttributes
Access Reasons: DELETE: Unknown or unchecked
READ_CONTROL: Unknown or unchecked
SYNCHRONIZE: Unknown or unchecked
ReadData (or ListDirectory): Unknown or unchecked
WriteData (or AddFile): Denied by Integrity Policy check
AppendData (or AddSubdirectory or CreatePipeInstance): Unknown or unchecked
WriteEA: Unknown or unchecked
ReadAttributes: Unknown or unchecked
WriteAttributes: Unknown or unchecked
Access Mask: 0x130197
Privileges Used for Access Check: -
Restricted SID Count: 0
監査レポートで指定されたユーザーには、フォルダへのフル アクセスが付与されました。