Периодическая проблема с YafMembershipProvider - Ошибка конфигурации, сообщенная в web.config
У меня периодически возникает проблема с Another Another Forum.NET, когда форумы просто отключаются. Обычно между событиями проходит не менее недели, обычно больше. Последнее для сайта произошло 30 апреля, а затем еще раз 29 мая (на этот раз довольно большой разрыв, возможно, из-за того, что я предварительно перезапустил веб-сайт, чтобы избежать случаев, когда я не в сети и не могу решить проблему немедленно)). Проблема всегда исчезает, когда сайт перезапускается.
Я использую YAF 1.9.6.1 и получаю ошибку:
Server Error in '/' Application.
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: Thread was being aborted.
Source Error:
Line 157: <providers>
Line 158: <clear />
Line 159: <add connectionStringName="yafnet" applicationName="YetAnotherForum" name="YafMembershipProvider" requiresUniqueEmail="true" useSalt="true" type="YAF.Providers.Membership.YafMembershipProvider" />
Line 160: </providers>
Line 161: </membership>
Source File: D:\Inetpub\ftproot\MW\paydirt\www.paydirt.co.nz\web.config Line: 159
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272
В случае, если это имеет какое-либо отношение...
- Форум YAF находится рядом с тем же сайтом, что и сайт на базе Composite C1 CMS - http://www.paydirt.co.nz/.
- Основной сайт, основанный на CMS, никогда не отключается, только страницы форума YAF (на самом деле я использую инструмент CMS "Restart Server", чтобы восстановить форумы).
- Сайт находится в плане общего хостинга, точные детали настройки сервера мне неизвестны, но IIS 6 используется, и я подозреваю, что это своего рода ферма серверов.
- Здесь присутствует компонент времени, как это всегда происходит после перезапуска веб-сайта. Поэтому я активно перезапускаю веб-сайт, чтобы остановить проблему.
Я был бы рад услышать любые советы / идеи о том, что может быть причиной этого, так как это происходит уже довольно давно. У форумов есть неприятная привычка выходить из строя, когда я уезжаю на выходные и не в сети.
Заранее спасибо за любую помощь, Гэвин
1 ответ
Проблема заключалась в глобальном использовании YAF.NET HttpApplication для хранения строк подключения. Оглядываясь назад, HttpApplication является плохим местом для хранения одноразовых экземпляров данных конфигурации. Изредка бывали столкновения и сбои.
Исправленные исправления: https://github.com/YAFNET/YAFNET/commit/163e0c016087d4c2b8b625d807ce0b1eaa417195
Используйте глобальный ConcurrentDictionary вместо HttpApplication для хранения строк подключения для поставщиков членства.