В IIS, Выполнение приложения в Пуле приложений. Пул приложений работает в одном или нескольких процессах W3WP.
Это походит на то, что происходит, вот то, что Ваше приложение в конечном счете встречается с условием, с которым W3WP не может справиться, когда выполнено с минимальными полномочиями.
LocalSystem является высокой привилегированной учетной записью - когда материал запускается (или в Вашем случае, сохраняет), работающий LocalSystem, обычно который указывает на некоторую форму различия в уровне полномочий (иногда, различий в профиле пользователя).
Всем Идентификационным данным Пула приложений волшебно дают членство в IIS_IUSRS по умолчанию, который дает все разрешения, которых IIS требует для выполнения Пула приложений - это не может включать все полномочия, требуемые конкретным app/framework/one библиотек.
Попытайтесь включить установку Load User Profile в пуле приложений при выполнении низко привилегированный, и если это не улучшит вещи, то необходимо будет отладить его - или наблюдать его работающий с Монитором Процесса за возможным файлом или трудностями с доступом к реестру (http://live.sysinternals.com/procmon.exe), или захватить дамп памяти процесса, когда это будет отказавшим, захват PSSCOR2, и, возможно, запустите с! dae, если ничто не выглядит особенно нечетным на ту точку.
Короткая версия - то, что внутренний процесс / состояние во время выполнения кажется, что становится накормленным обедом; это не было должно; часто это будет своего рода проблемой собственного кода, которая делает это, но в Вашем случае, это могли быть полномочия.
Править: О, не LocalSystem, {локальный пользователь системы как администратор}. Глюк. Ну, дайте вещь Профиля, попытка - видит также этот бит.
Кроме того, Переработка: когда новый W3WP запускается для замены старого, теряя все состояние от старого в процессе, и старый уничтожен после 90 секунд, если это не завершает полезной работы, это все еще способно к и завершило работу себя. (читайте "по умолчанию"),
As someone who fell in love with daemontools thirteen years ago, I too try to supervise all the things. nginx is a bit feisty though, you have to use at least daemon off;
in your config to run it in the foreground, and master_process off;
if you really don't want it spawning any children. Just exec
it then from your run program and it will behave like you expect.
I was cutting against the grain, however. I've come to accept that nginx has supervision built in. You'll notice that when you run it you get something like this:
$ psg nginx
root 1361 1 0 Mar31 ? 00:00:00 nginx: master process /usr/sbin/nginx
www-data 1362 1361 0 Mar31 ? 00:18:10 nginx: worker process
www-data 1363 1361 0 Mar31 ? 00:18:44 nginx: worker process
$ pstree -p 1361
nginx(1361)─┬─nginx(1362)
└─nginx(1363)
The master process is essentially supervise
. It's super lightweight and is solely responsible for making sure workers are running properly. I've never once had it crash on me, even in some fairly busy environments. So now I just let init
stop/start it and worry about services I do need to supervise.
There are other considerations. Check out what the official documentation has to say about it: http://nginx.org/en/docs/faq/daemon_master_process_off.html