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 を事前定義されたネットワーク サービスからドメイン ユーザーに変更すると、アプリケーションにアクセスしようとしたときに「サービスを利用できません」というメッセージが表示されました。
これに関するヘルプは本当に感謝しています。