0

FileUpload コントロールを使用してサーバーにアップロードされたファイルを読み取ろうとしていますが、次のエラーが発生します。

ASP.NET は、要求されたリソースへのアクセスを許可されていません。リソースへのアクセス権を ASP.NET 要求 ID に付与することを検討してください。ASP.NET には、アプリケーションが偽装していない場合に使用されるベース プロセス ID (通常、IIS 5 では {MACHINE}\ASPNET、IIS 6 ではネットワーク サービス) があります。アプリケーションが を介して偽装している場合<identity impersonate="true"/>、ID は匿名ユーザー (通常は IUSR_MACHINENAME) または認証された要求ユーザーになります。

調べたところ、フォルダーにネットワークサービスアカウントの権限がないようなので、追加しましたが、問題はまだあります。私の FileUpload コントロールのコードは次のとおりです。

<asp:FileUpload ID="FileUpload1" runat="server" style="top: 164px; left: 12px;       position: absolute; height: 22px; width: 281px" />

サーバーにファイルを保存するために使用しているコードは次のとおりです。

protected void Button1_Click1(object sender, EventArgs e)
{
    FileUpload1.SaveAs("C:\\folder\\autoTrack.xlsx");
    StatusLabel.Text = FileUpload1.PostedFile.FileName;
    if (FileUpload1.PostedFile.FileName != "")
    {
        this.readFile("C:\\folder\\autoTrack.xlsx"); //this is where the program crash due to lack of permissions!
    }
    else 
    {
        StatusLabel.Text = "Select a file to start the process!";
    }

}

c:\folder フォルダーの ACL には、フル コントロールのアクセス許可を持つネットワーク サービスがあり、子オブジェクトに伝達するために継承が有効になっています。

また、アプリケーション プールの [ID] タブでドメイン アカウントを使用すると問題を解決できることを読みましたが、ID を事前定義されたネットワーク サービスからドメイン ユーザーに変更すると、アプリケーションにアクセスしようとしたときに「サービスを利用できません」というメッセージが表示されました。

これに関するヘルプは本当に感謝しています。

4

2 に答える 2

0

多くの苦労の末、私は問題を見つけることができました。サーバーでネットワーク サービスの DCOM プロパティを設定する必要があります。以下のリンクは、その方法を説明しています。

http://community.spiceworks.com/education/projects/Setting_The_Default_DCOM_Properties_And_Security

これを設定した後、アクセスエラーを受信しなくなりました。

于 2013-04-09T17:13:26.480 に答える
0

まず、フォルダ内の全員にアクセス許可を与えて、機能するかどうかを確認してください。そうであれば、適切な権限を付与する適切なユーザーを見つけるだけです。IIS で実行している場合は、ここで説明されているように、アプリケーション プール ユーザーにアクセス許可を付与する必要があります -> http://www.iis.net/learn/manage/configuring-security/application-pool-identities

于 2013-04-08T15:45:32.967 に答える