Я использую lucence.net, который создает файл как «блокировку». Из того, что я могу сказать, просто создается файл для записи, и если он не может заблокировать db. Я получаю исключение нижеПроблема блокировки в ASP.NET при отладке
Я вызываю lucence_init(), за исключением того, что это произойдет один раз. Я вызываю его в Application_Start после того, как я установил текущую рабочую папку и другие вещи.
Я не могу сказать, когда это произойдет, но я знаю, что это происходит только тогда, когда я нажимаю F5 в визуальных студиях. И это (очевидно) никогда не случается в первый раз. I думаю происходит, когда я получаю исключение, ударяю стоп, исправляю и пытаюсь запустить код. Мне нужно использовать значок в системном трее, чтобы остановить веб-сервер VS и повторно запустить код (иногда вручную удаляя файл блокировки, но теперь у меня есть визуальные студии, делающие это как событие пост-сборки. Что странно, может быть, мне не нужна эта часть)
В любом случае из-за этой проблемы инициализации мой другой код не запускается из-за исключения записи, и я не могу изменить порядок и не хочу программировать вокруг него, так как я могу решить эту проблему, чтобы его было менее раздражать, чтобы отладить этот веб-паппер?
Lock obtain timed out: [email protected]:\dev\prj\...\App_Data\LuceneIndex_a\write.lock: System.IO.IOException: The process cannot access the file 'c:\dev\prj\...\App_Data\LuceneIndex_a\write.lock' because it is being used by another process.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy)
at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access)
at Lucene.Net.Store.NativeFSLock.Obtain()
IIRC theres только один раз функция, которая ПИСАТЕТ к lucence, и я уверен, что исключения не происходят в этой строке. Но в любом случае проблема заключается в том, что я снова запускаю приложение, и он пытается открыть lucence, хотя каким-то образом он все еще удерживает блокировку. Есть ли способ убить процесс или сделать ЧТО-ТО, когда закончится мой процесс или как раз перед тем, как я его снова запустил. На самом деле я уверен, что исключение никогда не происходит, когда я пишу bc, информация застревает внутри структуры, а затем вызывает функцию для вставки и ничего другого. Так ... ... его во время записи .... – 2010-10-18 06:16:51