powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ошибка возникает время от времени
18 сообщений из 18, страница 1 из 1
Ошибка возникает время от времени
    #39984994
mikka sikorsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Время от времени возникает следующая ошибка:

Программа запускается через интранет.
Причем, тут же запускаю через сборку исходников проект на C# - всё работает!
Выполнение программы через интранет лечится перезапуском сервера IIS.
Но такой вариант не устраивает.
Хотелось бы знать, как в коде устранить проблему?
Пробовал подключаться к процессу через Отладку - в точке останова пишет, что не загружены символы.
В настройках параметров указывал путь к файлу pdb - никаких ихменений.
Понатыкать после каждой строки кода логирование?
Надеюсь на конструктивные ответы.

Метод, на котором падает программа (на всякий случай):

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
        private void CreateReportFile(string argument)
        {
            SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["MSSQLConnection"].ConnectionString);
            SqlDataAdapter da = new SqlDataAdapter();
            string cmdText = "select * from QuarterlyCheckReportsHeader where Id = @ReportId";
            SqlCommand SelectCommand = new SqlCommand(cmdText, connection);
            SelectCommand.CommandType = CommandType.Text;
            SelectCommand.CommandTimeout = int.MaxValue;
            SqlParameter tvpParam = SelectCommand.Parameters.AddWithValue("ReportId", argument);
            tvpParam.SqlDbType = SqlDbType.Int;
            da.SelectCommand = SelectCommand;
            System.Data.DataSet ds = new System.Data.DataSet();
            connection.Open();
            da.Fill(ds);

            System.Data.DataTable param_dt = new System.Data.DataTable();
            param_dt.Columns.Add("Id", System.Type.GetType("System.Int32"));
            param_dt.Columns.Add("DateReport", System.Type.GetType("System.DateTime"));
            param_dt.Columns.Add("N1", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N2", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N3", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N4", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N5", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N6", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N7", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N8", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N9", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N10", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N11", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N12", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N13", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N14", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N15", System.Type.GetType("System.String"));
            param_dt.Columns.Add("N16", System.Type.GetType("System.String"));
            param_dt.Columns.Add("Id_Load", System.Type.GetType("System.String"));
            param_dt.Columns.Add("Id_PROMU", System.Type.GetType("System.String"));
            param_dt.Columns.Add("Id_MVK", System.Type.GetType("System.String"));

            System.Data.DataRow dr = null;
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                dr = param_dt.NewRow();
                dr.ItemArray = ds.Tables[0].Rows[i].ItemArray;
                param_dt.Rows.Add(dr);
            }

            connection.Close();

            rvView.Reset();
            rvView.ProcessingMode = ProcessingMode.Local;
            rvView.LocalReport.DataSources.Clear();
            rvView.LocalReport.ReportPath = @"Reports\Report.rdlc";
            rvView.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(SubreportProcessingEventHandler);

            ReportDataSource datasource = new ReportDataSource("DataSet", param_dt as System.Data.DataTable);
            datasource.Name = "DataSet1";
            datasource.Value = param_dt;
            rvView.LocalReport.DataSources.Add(datasource);
            ReportParameter p1 = new ReportParameter("ReportParameter1", argument);
            rvView.LocalReport.SetParameters(p1);
            byte[] reportBytes = rvView.LocalReport.Render("Excel");

            string sRootFileName = "Отчет о результатах проведения квартальной проверки - ";
            string sFileName = "~/" + sRootFileName + DateTime.Now.ToString("dd.MM.yyyy") + ".xls";
            sFileName = System.Environment.MachineName == "INTCONTROL-P" ? sFileName.Replace(@"~/", @"C:\Windows\Temp\") : Server.MapPath(sFileName);  // INTCONTROL-P
            using (FileStream stream = File.OpenWrite(sFileName)) /*Server.MapPath(sFileName)*/
                stream.Write(reportBytes, 0, reportBytes.Length);

            // открыть файл и изменить область печати.
            Microsoft.Office.Interop.Excel.Application ExcelObj = null;
            Microsoft.Office.Interop.Excel.Workbooks Workbooks = null;
            Microsoft.Office.Interop.Excel.Worksheet Worksheet = null;
            Microsoft.Office.Interop.Excel.Workbook Workbook = null;
            Microsoft.Office.Interop.Excel.Sheets Sheets = null;

            try
            {
                ExcelObj = new Microsoft.Office.Interop.Excel.Application();
                Workbooks = ExcelObj.Workbooks;
                ExcelObj.DisplayAlerts = false;
                ExcelObj.Visible = false; // <-для отладки поставить в visible
                string FileName = System.Environment.MachineName == "INTCONTROL-P" ? sFileName.Replace(@"~/", @"C:\Windows\Temp\") : sFileName;

                Workbook = Workbooks.Open(FileName, 0, false, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
                Sheets = Workbook.Worksheets;
                Worksheet = (Worksheet)Sheets.get_Item(1);

                Worksheet.Columns["A:A"].ColumnWidth = 5.29;
                Worksheet.Columns["B:B"].ColumnWidth = 5;
                Worksheet.Columns["C:C"].ColumnWidth = 8.43;
                Worksheet.Columns["D:D"].ColumnWidth = 12.71;
                Worksheet.Columns["E:E"].ColumnWidth = 27.29;
                Worksheet.Columns["F:F"].ColumnWidth = 7;
                Worksheet.Columns["G:G"].ColumnWidth = 7.43;
                Worksheet.Columns["H:H"].ColumnWidth = 7;
                Worksheet.Columns["I:I"].ColumnWidth = 7.86;
                Worksheet.Columns["J:J"].ColumnWidth = 7;
                Worksheet.Columns["K:K"].ColumnWidth = 7;
                Worksheet.Rows["1:1"].RowHeight = 15.75;
                Worksheet.Rows["2:2"].RowHeight = 48;
                Worksheet.Rows["3:3"].RowHeight = 15;
                Worksheet.Rows["4:4"].RowHeight = 15.75;
                Worksheet.Rows["5:5"].RowHeight = 15;
                Worksheet.Rows["6:6"].RowHeight = 15.75;
                Worksheet.Rows["7:7"].RowHeight = 30;
                Worksheet.Rows["8:8"].RowHeight = 42.75;
                Worksheet.Rows["9:9"].RowHeight = 43.5;
                Worksheet.Rows["10:10"].RowHeight = 15;
                Worksheet.Rows["11:11"].RowHeight = 15;
                Worksheet.Rows["12:12"].RowHeight = 29.25;
                Worksheet.Rows["13:13"].RowHeight = 28.5;
                Worksheet.Rows["14:14"].RowHeight = 28.5;
                Worksheet.Rows["15:15"].RowHeight = 15;
                Worksheet.Rows["16:16"].RowHeight = 15.75;
                Worksheet.Rows["17:17"].RowHeight = 30.75;
                Worksheet.Rows["18:18"].RowHeight = 34.5;
                Worksheet.Rows["19:19"].RowHeight = 34.5;
                Worksheet.Rows["20:20"].RowHeight = 28.25;
                Worksheet.Rows["21:21"].RowHeight = 28.25;
                Worksheet.Rows["22:22"].RowHeight = 34.5;
                Worksheet.Rows["23:23"].RowHeight = 28.25;
                Worksheet.Rows["24:24"].RowHeight = 28.25;
                Worksheet.Rows["25:25"].RowHeight = 15;
                Worksheet.Rows["26:26"].RowHeight = 15.75;
                Worksheet.Rows["27:27"].RowHeight = 30.75;
                Worksheet.Rows["28:28"].RowHeight = 15;
                Worksheet.Rows["29:29"].RowHeight = 15.75;
                Worksheet.Rows["30:30"].RowHeight = 55.5;
                Worksheet.Rows["31:31"].RowHeight = 44.25;
                Worksheet.Rows["32:32"].RowHeight = 15;
                Worksheet.Rows["33:33"].RowHeight = 15.75;
                Worksheet.Rows["34:34"].RowHeight = 43.5;
                Worksheet.Rows["35:35"].RowHeight = 15;
                Worksheet.Rows["36:36"].RowHeight = 15;
                Worksheet.Rows["37:37"].RowHeight = 15.75;
                Worksheet.Rows["38:38"].RowHeight = 15;
 
                Worksheet.Range["B1:K1"].Font.Bold = true;
                Worksheet.Range["B2:K2"].Font.Bold = true;
                Worksheet.Range["B4"].Font.Bold = true;
                Worksheet.Range["B6"].Font.Bold = true;
                Worksheet.Range["B11"].Font.Bold = true;
                Worksheet.Range["B16"].Font.Bold = true;
                Worksheet.Range["F17:G17"].Font.Bold = true;
                Worksheet.Range["H17:I17"].Font.Bold = true;
                Worksheet.Range["J17:K17"].Font.Bold = true;
                Worksheet.Range["B19:E19"].Font.Bold = true;
                Worksheet.Range["F18:K19"].Font.Bold = true;
                Worksheet.Range["F19:K19"].Font.Bold = true;
                Worksheet.Range["B22:K22"].Font.Bold = true;
                Worksheet.Range["B26"].Font.Bold = true;
                Worksheet.Range["B29"].Font.Bold = true;
                Worksheet.Range["B33"].Font.Bold = true;
                Worksheet.Range["B37"].Font.Bold = true;

                // убираем границы ячеек и отрисовываем границы там, где нам надо
                ExcelObj.Cells.Select();
                ClearCellsBorders(ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B17:K17"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B18:K18"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B19:K19"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B20:K20"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B21:K21"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B22:K22"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B23:K23"], ExcelObj);
                PlaceBottomBorders(Worksheet.Range["B24:K24"], ExcelObj);

                Sheets[1].Select();
                ExcelObj.ActiveWindow.View = XlWindowView.xlPageBreakPreview;
                Worksheet = (Worksheet)ExcelObj.ActiveSheet;
                Worksheet.VPageBreaks[1].DragOff(XlDirection.xlToRight, 1);
                Worksheet.HPageBreaks[1].DragOff(XlDirection.xlDown, 1);
                ExcelObj.ActiveWindow.Zoom = 100;

                Sheets[2].Select();
                ExcelObj.ActiveWindow.View = XlWindowView.xlPageBreakPreview;
                Worksheet = (Worksheet)ExcelObj.ActiveSheet;
                Worksheet.Rows["1:1"].RowHeight = 15.75;
                Worksheet.Rows["2:2"].RowHeight = 15;
                Worksheet.Rows["3:3"].RowHeight = 15;
                Worksheet.Rows["4:4"].RowHeight = 15;
                Worksheet.Rows["5:5"].RowHeight = 15;
                Worksheet.Rows["6:6"].RowHeight = 15;
                Worksheet.Rows["7:7"].RowHeight = 28.5;
 
                Worksheet.Columns["A:A"].ColumnWidth = 12.57;
                Worksheet.Columns["B:B"].ColumnWidth = 11;
                Worksheet.Columns["C:C"].ColumnWidth = 40;
                Worksheet.Columns["D:D"].ColumnWidth = 12;
                Worksheet.Columns["E:E"].ColumnWidth = 40;
                Worksheet.Columns["F:F"].ColumnWidth = 8.43;
                Worksheet.Columns["G:G"].ColumnWidth = 8.43;
                Worksheet.Columns["H:H"].ColumnWidth = 10.29;
                Worksheet.Columns["I:I"].ColumnWidth = 40;
                Worksheet.Columns["J:J"].ColumnWidth = 14.57;
                Worksheet.Columns["K:K"].ColumnWidth = 18;
 
                Worksheet.VPageBreaks[1].DragOff(XlDirection.xlToRight, 1);
                ExcelObj.ActiveWindow.Zoom = 100;

                Worksheet.Range["A1:K6"].Select();
                ClearCellsBorders(ExcelObj);

                Worksheet.PageSetup.Zoom = false;
                Worksheet.PageSetup.Orientation = XlPageOrientation.xlLandscape;
                Worksheet.PageSetup.FitToPagesWide = 1;
                Worksheet.PageSetup.FitToPagesTall = 1;

                Worksheet.Range["A1:K1"].Select();
                Sheets[1].Select();
                Worksheet = (Worksheet)ExcelObj.ActiveSheet;
                Worksheet.Range["A1"].Select();
                Workbook.Save();
            }
            finally
            {
                Workbook.Close(0);
                ExcelObj.Quit();
                Marshal.ReleaseComObject(Sheets);
                Marshal.ReleaseComObject(Worksheet);
                Marshal.ReleaseComObject(Workbooks);
                Marshal.ReleaseComObject(Workbook);
                Marshal.ReleaseComObject(ExcelObj);
 
                Workbooks = null;
                Workbook = null;
                Sheets = null;
                Worksheet = null;
                ExcelObj = null;
            }

            string FilePathForDelete = System.Environment.MachineName == "INTCONTROL-P" ? sFileName.Replace(@"~/", @"C:\Windows\Temp\") : sFileName;
            try
            {
                FileInfo file = new FileInfo(FilePathForDelete);
                Response.Clear();
                Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlPathEncode(file.Name));
                Response.AddHeader("Content-Length", file.Length.ToString());
                Response.ContentType = "application/zip";
                Response.WriteFile(file.FullName);
                Response.Flush();
                Response.End();
            }
            finally
            {
                File.Delete(FilePathForDelete);
            }
        }



Модератор: В следующий раз портянку просто сотру. Используте тег spoiler
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39984996
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: При чем тут MSSQL?
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985000
mikka sikorsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картинка в полном размере.
Редактировать сообщение не могу.
За портянку извиняюсь, думал прилагать её или нет.
Приложил - нарвался. Сорри.

...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985001
mikka sikorsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гавриленко Сергей Алексеевич,

Падает при обращении к базе данных

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985007
mikka sikorsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это WebForms
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985033
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikka sikorsky,
К примеру до этой строки может не дойти код, из-за произвольной ошибки.
Workbook = Workbooks.Open(

Далее в блоке Finally идёт закрытие книги
Workbook.Close(0)

А ссылки то и не будет. Надо в каждом блоке сделать Catch, где хотя бы отловить где ошибка (залогировать место), а в блоках Finally как минимум проверять, что там всё хорошо:
If Workbook IsNot Nothing Then

портянка большая, сглючить может во многих местах. По хорошему надо дробить на отдельные методы
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985036
Кифирчик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В stack trace есть номера строк в которых вылетели ошибки - 426,122.
в приложенном коде это какие строки?
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985038
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать офисные приложения на сервере - крайне неудачная идея.
Для генерации экселя без их участия давным-давно уже придумали EPPlus.
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985133
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
// If you are a commercial business and have
// purchased commercial licenses use the static property
// LicenseContext of the ExcelPackage class :
ExcelPackage.LicenseContext = LicenseContext.Commercial;

// If you use EPPlus in a noncommercial context
// according to the Polyform Noncommercial license:
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;



Ну да, ну да. Любители халявки уже потирают руки :)
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985181
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Ну да, ну да. Любители халявки уже потирают руки :)

Не понял, о чем это.
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985221
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
hVostt
Ну да, ну да. Любители халявки уже потирают руки :)

Не понял, о чем это.


О том, что библиотека платная для коммерческого использования.
Для не коммерческого нафиг она нужна?

С учётом, что 90% (условно) разработчиков ищут халявные библиотеки, вместо того, чтобы пойти и выбить бюджет у руководства, это такое себе предложение.
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985224
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Для не коммерческого нафиг она нужна?

Ну почему же, разве некоммерческим приложениям по определению не нужен эксель?
hVostt
С учётом, что 90% (условно) разработчиков ищут халявные библиотеки

В местных реалиях те же 90% ещё ищут халявные IDE (и находят в виде всяких community и express edition, которые тоже запрещены для коммерческой разработки).
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985445
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
hVostt
Для не коммерческого нафиг она нужна?

Ну почему же, разве некоммерческим приложениям по определению не нужен эксель?


Для некоммерческих это вряд ли целевое использование.
Если что-то надо выгрузить, это можно сделать и простейшем CSV, которое легко в эксель засунуть.

Сон Веры Павловны
В местных реалиях те же 90% ещё ищут халявные IDE (и находят в виде всяких community и express edition, которые тоже запрещены для коммерческой разработки).


У нас такого нет :)
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985473
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
hVostt
Для не коммерческого нафиг она нужна?

В местных реалиях те же 90% ещё ищут халявные IDE (и находят в виде всяких community и express edition, которые тоже запрещены для коммерческой разработки).


Не знаю о других IDE, но VS Express можно для коммерческих целей использовать.
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985507
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Диклевич Александр
VS Express

Её давным-давно уже не существует, есть VS community, которая разрешена для коммерческой разработки при числе девелоперов не более 5 человек: https://visualstudio.microsoft.com/ru/license-terms/mlt553321/
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985512
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,

и если суммарный доход этих 5 пользователей не превышает 1 млн долларов :D
но для этого каждый должен по 1 300 000 р. зарабатывать, но с такой зарплатой можно и купить не напрягаясь :D
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39985653
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

Суммарный доход с проекта, а не с пользователей.
И скорее всего не доход, а оборот.

С другой стороны, JetBrains All Product Pack стоит копейки на одного разработчика.
У меня две лицензии, личная и корпоративная :)
...
Рейтинг: 0 / 0
Ошибка возникает время от времени
    #39986323
Диклевич Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны
Диклевич Александр
VS Express

Её давным-давно уже не существует, есть VS community, которая разрешена для коммерческой разработки при числе девелоперов не более 5 человек: https://visualstudio.microsoft.com/ru/license-terms/mlt553321/


что значит "не существует"?
Вот ссылка на скачивание, берите, пользуйтесь - https://visualstudio.microsoft.com/vs/older-downloads/.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Ошибка возникает время от времени
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]