// 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, который записывает два текстовых файла на диск сервера. Одно написано напрямую, а другое написано в отдельном потоке.
Проблема в том, что метод File.WriteAllText
, который выполняется в отдельном потоке, вызывает исключение «Отказано в доступе». Другими словами, «test.txt» написано, но «test2.txt» вызывает исключение «Отказано в доступе».
Есть ли способ дать потоку права на чтение / запись основного потока сеанса?