Стартовая страница › Форумы › Ошибки в работе › Ошибки Веб › Ошибка при включении капчи
- В этой теме 8 ответов, 2 участника, последнее обновление 2 года назад сделано
Mikhail.
-
АвторЗаписи
-
06.08.2024 в 10:10 #33830
qweqweqwe
УчастникДобрый день!
Установил SCADA 6.2.1 на Debian 6.1.99-1 (2024-07-15), устанавливал по инструкции, вроде без ошибок. проблема возникла при включении капчи в веб приложении, получаю ошибкуОшибка
При обработке вашего запроса произошла ошибка.
Request ID: 00-bba0ae4f8f21474c6cc308d4d0b4efb2-892873a6267bff22-00Development Mode
Swapping to the Development environment displays detailed information about the error that occurred.The Development environment shouldn’t be enabled for deployed applications. It can result in displaying sensitive information from exceptions to end users. For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development and restarting the app.
В журнале Вебстанции получаю
2024-08-06 09:50:11 [sensor][root][ACT] Плагин PlgScheme: Извлечение компонентов схем из установленных плагинов
2024-08-06 09:50:11 [sensor][root][ACT] Плагин PlgScheme: Добавлены компоненты из плагина PlgSchBasicComp
2024-08-06 09:50:12 [sensor][root][ACT] Приём базы конфигурации
2024-08-06 09:50:12 [sensor][root][ACT] База конфигурации получена успешно
2024-08-06 09:50:12 [sensor][root][INF] Приложение готово к работе
2024-08-06 09:50:29 [sensor][root][ERR] Указан неверный защитный код, IP 10.6.1.206
2024-08-06 09:50:29 [sensor][root][ERR] Необработанное исключение:
System.TypeInitializationException: The type initializer for ‘SkiaSharp.SKImageInfo’ threw an exception.
—> System.DllNotFoundException: Unable to load shared library ‘libSkiaSharp’ or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you’re using glibc, consider setting the LD_DEBUG environment variable:
libfontconfig.so.1: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/libSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/libSkiaSharp: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/libSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/libSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/liblibSkiaSharp: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/liblibSkiaSharp: cannot open shared object file: No such file or directoryat SkiaSharp.SkiaApi.sk_colortype_get_default_8888()
at SkiaSharp.SKImageInfo..cctor()
— End of inner exception stack trace —
at SkiaSharp.SKImageInfo..ctor(Int32 width, Int32 height)
at Scada.Web.Code.Captcha.WriteImage(Stream stream, String text)
at Scada.Web.Code.Captcha.GenerateImageSrc(String text)
at Scada.Web.Pages.LoginModel.GetCaptchaImage()
at Scada.Web.Pages.Pages_Login.<>c__DisplayClass31_0.<<ExecuteAsync>b__1>d.MoveNext()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.GetChildContentAsync(Boolean useCachedResult, HtmlEncoder encoder)
at Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
at Scada.Web.Pages.Pages_Login.ExecuteAsync()
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
2024-08-06 09:50:33 [sensor][root][ERR] Необработанное исключение:
System.TypeInitializationException: The type initializer for ‘SkiaSharp.SKImageInfo’ threw an exception.
—> System.DllNotFoundException: Unable to load shared library ‘libSkiaSharp’ or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you’re using glibc, consider setting the LD_DEBUG environment variable:
libfontconfig.so.1: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/libSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/libSkiaSharp: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/libSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/libSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/liblibSkiaSharp: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/liblibSkiaSharp: cannot open shared object file: No such file or directoryat SkiaSharp.SkiaApi.sk_colortype_get_default_8888()
at SkiaSharp.SKImageInfo..cctor()
— End of inner exception stack trace —
at SkiaSharp.SKImageInfo..ctor(Int32 width, Int32 height)
at Scada.Web.Code.Captcha.WriteImage(Stream stream, String text)
at Scada.Web.Code.Captcha.GenerateImageSrc(String text)
at Scada.Web.Pages.LoginModel.GetCaptchaImage()
at Scada.Web.Pages.Pages_Login.<>c__DisplayClass31_0.<<ExecuteAsync>b__1>d.MoveNext()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.GetChildContentAsync(Boolean useCachedResult, HtmlEncoder encoder)
at Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
at Scada.Web.Pages.Pages_Login.ExecuteAsync()
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)Судя по ошибке или я неправильно установил или при сборке пакета добавлена не та зависимость. При этом ищется файл liblibSkiaSharp , но присутствует libSkiaSharp.so. Похоже на то что неправильно написана зависимость, задублировано «lib».
Прошу помощи в решении проблемы.06.08.2024 в 14:44 #33851
MikhailМодераторДобрый день!
Проверю, напишу в эту тему.06.08.2024 в 15:57 #33853
MikhailМодераторНе могу воспроизвести ошибку. Каптча работает на тестовом сервере.
Какая версия Linux?
Попробуйте скопировать файл libSkiaSharp.so из /opt/scada/ScadaWeb/runtimes/linux-x64/native/ в директорию /opt/scada/ScadaWeb/ , хотя раньше этого не требовалось.
Прошу пользователей тоже проверить у себя на Linux каптчу, у кого есть такая возможность.-
Ответ изменён 2 года назад пользователем
Mikhail.
06.08.2024 в 16:58 #33855qweqweqwe
УчастникВерсия Debian GNU/Linux 12 (bookworm).
Лог после того как подложил файл libSkiaSharp.so в /opt/scada/ScadaWeb/
(sudo cp /opt/scada/ScadaWeb/runtimes/linux-x64/native/libSkiaSharp.so /opt/scada/ScadaWeb/):2024-08-06 16:55:59 [sensor][root][ACT] Приём базы конфигурации
2024-08-06 16:56:00 [sensor][root][ACT] База конфигурации получена успешно
2024-08-06 16:56:00 [sensor][root][INF] Приложение готово к работе
2024-08-06 16:56:06 [sensor][root][ERR] Необработанное исключение:
System.TypeInitializationException: The type initializer for ‘SkiaSharp.SKImageInfo’ threw an exception.
—> System.DllNotFoundException: Unable to load shared library ‘libSkiaSharp’ or one of its dependencies. In order to help diagnose loading problems, consider using a tool like strace. If you’re using glibc, consider setting the LD_DEBUG environment variable:
libfontconfig.so.1: cannot open shared object file: No such file or directory
libSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/liblibSkiaSharp.so: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/libSkiaSharp: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/libSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/libSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/runtimes/linux-x64/native/liblibSkiaSharp: cannot open shared object file: No such file or directory
/usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.7/liblibSkiaSharp: cannot open shared object file: No such file or directory
/opt/scada/ScadaWeb/liblibSkiaSharp: cannot open shared object file: No such file or directoryat SkiaSharp.SkiaApi.sk_colortype_get_default_8888()
at SkiaSharp.SKImageInfo..cctor()
— End of inner exception stack trace —
at SkiaSharp.SKImageInfo..ctor(Int32 width, Int32 height)
at Scada.Web.Code.Captcha.WriteImage(Stream stream, String text)
at Scada.Web.Code.Captcha.GenerateImageSrc(String text)
at Scada.Web.Pages.LoginModel.GetCaptchaImage()
at Scada.Web.Pages.Pages_Login.<>c__DisplayClass31_0.<<ExecuteAsync>b__1>d.MoveNext()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.GetChildContentAsync(Boolean useCachedResult, HtmlEncoder encoder)
at Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ProcessAsync(TagHelperContext context, TagHelperOutput output)
at Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.<RunAsync>g__Awaited|0_0(Task task, TagHelperExecutionContext executionContext, Int32 i, Int32 count)
at Scada.Web.Pages.Pages_Login.ExecuteAsync()
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageCoreAsync(IRazorPage page, ViewContext context)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderPageAsync(IRazorPage page, ViewContext context, Boolean invokeViewStarts)
at Microsoft.AspNetCore.Mvc.Razor.RazorView.RenderAsync(ViewContext context)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.ExecuteAsync(ViewContext viewContext, String contentType, Nullable`1 statusCode)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeResultFilters()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelineAsync()
— End of stack trace from previous location —
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Session.SessionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.<Invoke>g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)06.08.2024 в 18:31 #33857
MikhailМодераторПроблема, судя по всему встречается на некоторых системах. Посмотрите это обсуждение.
Стоит попробовать установить
sudo apt-get install -y libfontconfig1А также проверить
ldd libSkiaSharp.so
readelf -d libSkiaSharp.soНапишите, поможет или нет.
06.08.2024 в 18:33 #3385807.08.2024 в 08:15 #33868qweqweqwe
УчастникБлагодарю за помощь!
Установка пакета libfontconfig1 и его зависимостей решила проблему.
Выводldd libSkiaSharp.soдо установкиlinux-vdso.so.1 (0x00007fff1df1b000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f310039d000)
libfontconfig.so.1 => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3100398000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f30ff721000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f30ff540000)
/lib64/ld-linux-x86-64.so.2 (0x00007f31003a7000)и после
linux-vdso.so.1 (0x00007ffca9987000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3ce7930000)
libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f3ce6db5000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3ce792b000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3ce6cd6000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3ce6af5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3ce793b000)
libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f3ce6a2b000)
libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f3ce6a00000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f3ce69e1000)
libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007f3ce69ab000)
libbrotlidec.so.1 => /lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007f3ce791c000)
libbrotlicommon.so.1 => /lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007f3ce6988000)07.08.2024 в 08:20 #33869qweqweqwe
УчастникПрограмма
readelfу меня не установлена, не могу проверить.07.08.2024 в 15:05 #33921
MikhailМодераторХорошо, что получилось. Это весьма полезный опыт, который многим пригодится.
-
Ответ изменён 2 года назад пользователем
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.