// test.ashx
public class test : IHttpHandler {
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
try
{
File.WriteAllText(@"D:\inetpub\site.net\www\gs\data\test.txt", "Test");
Thread t = new Thread(write);
t.Start();
context.Response.Write("OK");
}
catch (Exception ex)
{
context.Response.Write(ex.Message);
}
}
private void write()
{
try
{
File.WriteAllText(@"D:\inetpub\site.net\www\gs\data\test2.txt", "Test2");
}
catch (Exception ex)
{
LogManager.Instance.Write(ex.Message);
}
}
public bool IsReusable {
get {
return false;
}
}
}
我有一個簡單的ashx文件,它將兩個文本文件寫入服務器磁盤。一個是直接寫的,另一個是寫在一個單獨的線程中。ASP.NET訪問在單獨的線程中被拒絕
問題是,在獨立線程中執行的方法File.WriteAllText
會導致Access Denied異常。換句話說,「test.txt」被寫入,但「test2.txt」導致訪問被拒絕異常。
有沒有辦法給一個線程主要會話線程的讀/寫權限?
我不認爲問題是與代碼。嘗試在c temp上寫入,並給該文件夾上的每個人寫入權限。我想這個問題是在ntfs或iis權限。 –
我的應用程序位於我的託管公司的服務器上,並且我沒有任何有關更改權限或輸出目錄的權限 –
也許磁盤上的權限不會傳播到其他線程?你的模擬/身份設置是什麼樣的?另外,你想要做什麼? :) – bzlm