2

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

監査レポートで指定されたユーザーには、フォルダへのフル アクセスが付与されました。

4

4 に答える 4

0

apppool に管理者権限を付与することをお勧めします。それはあなたの問題をすべて解決します。

于 2013-07-11T09:34:56.347 に答える
0

ひょっとして、匿名認証と Windows 認証の両方を有効にしていませんか? 偽装がオフになっているときに機能した理由を説明するのに役立ちます。

于 2013-07-11T13:13:49.333 に答える