Я пытаюсь зарегистрировать каждый метод в своей программе, у меня есть приложение, развернутое на сервере IIS, и пользователь просто позвонил мне и сказал, что функциональность электронной почты не работает, поэтому мне нужно в основном запустить приложение, но запишите каждый шаг в txt-файл.Процесс не может получить доступ к файлу 'C: file.txt', потому что он используется другим процессом
Я объявляя ниже в качестве глобального значения:
StreamWriter writer = new StreamWriter("C:\\file.txt");
Затем я использую его, как показано ниже в моем коде:
Method 1
{
if (file1.HasFile)
{
writer.WriteLine("Has File");
}
}
Способ 2
private Boolean InsertUpdateData(SqlCommand cmd)
{
writer.WriteLine("Insert Started" + DateTime.Now.ToString());
}
Так в моей case метод работает нормально, и он записывает файл, но когда он переходит во второй метод, я получаю, что файл уже открыт, что правильно, я могу обойти это?
Благодаря
Global Value - заявил на верхней
namespace WorkOrderManagement
{
public partial class CreateWorkOrder : System.Web.UI.Page
{
bool successfull;
string path;
string name;
string content;
string datas;
string ext;
bool affectedrows;
string seasonalsupervisor;
private string sLogFormat;
private string sErrorTime;
StreamWriter writer = new StreamWriter("C:\\file.txt");
Что вы подразумеваете под "глобальной стоимостью"? Вы имеете в виду 'статический' член?Вы понимаете, что IIS многопоточен, а статические члены разделяются всеми запросами, не так ли? –
Это немного запутывает код, который вы показываете, но, похоже, вам нужно освободить писателя, и вы этого не делаете. –
«Как я могу обойти это?» Не используйте «глобальный» поток. Откройте файл, напишите ему, закройте его (желательно с помощью блока 'using'). –