Ошибка сервера в приложении '/' in ASP.NET
У меня была ошибка сервера в приложении"/", когда я запускал свой веб-сайт. Я уже пытался устранить эту проблему, но до сих пор не могу понять, откуда исходит ошибка. В нем говорится, что процесс не может получить доступ к файлу, поскольку он используется другим процессом. Прежде чем это произойдет, я создал код, в котором, если администратор хочет создать новый бренд, он автоматически напишет новый фрагмент кода на файлы, на которые я его нацеливаю. А также если админ захочет удалить бренд, он удалит весь новый код, который я написал ранее.
Вчера все работало нормально, но visual studio подсказывает мне, что есть изменения, внесенные в файлы за пределами IDE, и она продолжала проверять наличие последовательных строк в моем коде. Я просто нажал " да " для всех, чтобы обновить код. Но я хочу, чтобы он автоматически перезагружал файлы, поэтому я пошел в Инструменты-Параметры-документы,а затем проверил перезагрузить измененные файлы, если нет несохраненных изменений. После этого я все еще могу запускать свой сайт и создавать новые бренды, но всякий раз, когда я пытаюсь удалить бренд, он выдает мне эту ошибку сервера в приложении"/".
Вот полное описание ошибки:
Ошибка сервера в приложении'/'.
Процесс не может получить доступ к файлу 'C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems. cs', потому что он используется другим процессом.
Описание: необработанное исключение возникло во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System. IO. IOException: процесс не может получить доступ к файлу 'C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems. cs', потому что он используется другим процессом.
Ошибка Источника:
Строка 184: }
Строка 185:
Линия 186: Система.ИО.Файл.WriteAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems. cs", результат);
Строка 187: }
Строка 188: }
Исходный файл: c:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\OverviewGuitarData.aspx. cs строка: 186
трассировка стека:
[IOException: процесс не может получить доступ к файлу 'C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems. cs', потому что он используется другим процессом.]
Системы.ИО.__Ошибка.WinIOError(код ошибки Int32, строка maybeFullPath) +216
Системы.ИО.Типа FileStream.Метод init(string путь, режим filemode необходимо открыть флагами fileaccess, int32 и прав, логическое useRights, поделиться обменник, типа int32 значение bufferSize, варианты FileOptions, в разделе security_attributes secAttrs, строки msgPath, логическое bFromProxy, логическое useLongPath, логическое checkHost) +1326
Системы.ИО.Хранилище FileStream..конструктор(string путь, режим filemode необходимо открыть флагами fileaccess, поделиться обменник, типа int32 значение bufferSize, FileOptions варианты, строки msgPath, логическое bFromProxy, логическое useLongPath, логическое checkHost) +66
Системы.ИО.Модулю записи StreamWriter.CreateFile (String path, Boolean append, Boolean checkHost) +73
System.IO. StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost) +73
Системы.ИО.Файл.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost) +64
Системы.ИО.Файл.WriteAllText(путь к строке, содержимое строки) +43
Pages_OverviewData. RemoveConnectionClassGuitarItems (строковое имя) в c:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\OverviewGuitarData.aspx. cs:186
Pages_OverviewData.GuitarBrandsGridViewBtn_Click(отправитель объекта, EventArgs e) in c:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\OverviewGuitarData.aspx. cs:73
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.OnClick(EventArgs e) +9696694
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.RaisePostBackEvent(String eventArgument) +204
Системы.Веб.Пользовательского интерфейса.WebControls.Кнопка.Системы.Веб.Пользовательского интерфейса.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +12
System.Web.UI.Page. RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +15
System.Web.UI.Page. RaisePostBackEvent(NameValueCollection postData) +35
Системы.Веб.Пользовательского интерфейса.Страницы.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1639
Информация о версии: Microsoft .NET Framework версия:4.0.30319; ASP.NET версия:4.6.1055.0
Что я уже пробовал:
protected void GuitarBrandsGridViewBtn_Click(object sender, EventArgs e) { Button btn = sender as Button; GridViewRow gridrow = btn.NamingContainer as GridViewRow; int id = Convert.ToInt32(GuitarBrandsGridView.DataKeys[gridrow.RowIndex].Value.ToString()); string name = GuitarBrandsGridView.Rows[gridrow.RowIndex].Cells[4].Text; con1.Open(); cmd1.CommandText = "DELETE FROM [guitarBrands] WHERE id=" + id; cmd1.Connection = con1; int a = cmd1.ExecuteNonQuery(); con1.Close(); if (a > 0) { bindgridviewguitarbrands(); } RemoveAddGuitarClass(name); RemoveOverviewGuitarDataCode(name); RemoveConnectionClassGuitarItems(name); RemoveOverviewGuitarDataASPX(name); System.IO.File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx"); System.IO.File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItems" + id + ".aspx.cs"); }
protected void RemoveAddGuitarClass(string name) { int counter = 0; string line; // Read the file and display it line by line. System.IO.StreamReader file1 = new System.IO.StreamReader(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\AddGuitarClass.cs"); while ((line = file1.ReadLine()) != null) { if (line.Contains(" case \"" + name + "\":")) { break; } counter += 1; } file1.Close(); RemoveAddGuitarClassCont(counter); } protected void RemoveAddGuitarClassCont(int counter) { int removeAt = counter;//or any thing you want removeAt -= 1; int linesToRemove = 20; //or any thing you want string s = System.IO.File.ReadAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\AddGuitarClass.cs"); List<string> arr = s.Split("\n".ToCharArray()).ToList(); string result = ""; for (int i = 0; i < linesToRemove; i++) { arr.RemoveAt(removeAt); result = ""; foreach (string str in arr) { result += str + "\n"; } System.IO.File.WriteAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\AddGuitarClass.cs", result); } } protected void RemoveOverviewGuitarDataCode(string name) { int counter = 0; string line; // Read the file and display it line by line. System.IO.StreamReader file2 = new System.IO.StreamReader(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\OverviewGuitarData.aspx.cs"); while ((line = file2.ReadLine()) != null) { if (line.Contains(" //Start of Gridview Code for " + name + " Guitars")) { break; } counter += 1; } file2.Close(); RemoveOverviewGuitarDataCodeCont(counter); } protected void RemoveOverviewGuitarDataCodeCont(int counter) { int removeAt = counter;//or any thing you want removeAt -= 1; int linesToRemove = 41; //or any thing you want string s = System.IO.File.ReadAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\OverviewGuitarData.aspx.cs"); List<string> arr = s.Split("\n".ToCharArray()).ToList(); string result = ""; for (int i = 0; i < linesToRemove; i++) { arr.RemoveAt(removeAt); result = ""; foreach (string str in arr) { result += str + "\n"; } System.IO.File.WriteAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\OverviewGuitarData.aspx.cs", result); } } protected void RemoveConnectionClassGuitarItems(string name) { int counter = 0; string line; // Read the file and display it line by line. System.IO.StreamReader file3 = new System.IO.StreamReader(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems.cs"); while ((line = file3.ReadLine()) != null) { if (line.Contains(" public static ArrayList GetItems" + name + "(string itemCategory)")) { break; } counter += 1; } file3.Close(); RemoveConnectionClassGuitarItemsCont(counter); } protected void RemoveConnectionClassGuitarItemsCont(int counter) { int removeAt = counter;//or any thing you want removeAt -= 2; int linesToRemove = 44; //or any thing you want string s = System.IO.File.ReadAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems.cs"); List<string> arr = s.Split("\n".ToCharArray()).ToList(); string result = ""; for (int i = 0; i < linesToRemove; i++) { arr.RemoveAt(removeAt); result = ""; foreach (string str in arr) { result += str + "\n"; } System.IO.File.WriteAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems.cs", result); } } protected void RemoveOverviewGuitarDataASPX(string name) { int counter = 0; string line; // Read the file and display it line by line. System.IO.StreamReader file4 = new System.IO.StreamReader(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\OverviewGuitarData.aspx"); while ((line = file4.ReadLine()) != null) { if (line.Contains(" <h3>" + name + " Guitar Items Data</h3>")) { break; } counter += 1; } file4.Close(); RemoveOverviewGuitarDataASPXCont(counter); } protected void RemoveOverviewGuitarDataASPXCont(int counter) { int removeAt = counter;//or any thing you want removeAt -= 2; int linesToRemove = 44; //or any thing you want string s = System.IO.File.ReadAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems.cs"); List<string> arr = s.Split("\n".ToCharArray()).ToList(); string result = ""; for (int i = 0; i < linesToRemove; i++) { arr.RemoveAt(removeAt); result = ""; foreach (string str in arr) { result += str + "\n"; } System.IO.File.WriteAllText(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\App_Code\ConnectionClassGuitarItems.cs", result); } }