Исключение безопасности при записи в EventLog из приложения MVC ASP.NET

упаковщик Dean Edward достигает некоторых довольно хороших степеней сжатия. Это имеет реализации командной строки, который позволяет этому использоваться в непрерывном процессе интеграции.

9
задан CoderDennis 22 October 2009 в 21:51
поделиться

1 ответ

Между созданием кортежа и созданием итератора это почти промывка, но итерация выигрывает у носа ...:

$ python2.6 -mtimeit -s'x=set([1])' 'a=tuple(x)[0]'
1000000 loops, best of 3: 0.465 usec per loop
$ python2.6 -mtimeit -s'x=set([1])' 'a=tuple(x)[0]'
1000000 loops, best of 3: 0.465 usec per loop
$ python2.6 -mtimeit -s'x=set([1])' 'a=next(iter(x))'
1000000 loops, best of 3: 0.456 usec per loop
$ python2.6 -mtimeit -s'x=set([1])' 'a=next(iter(x))'
1000000 loops, best of 3: 0.456 usec per loop

Не уверен, почему во всех ответах используется старый синтаксис iter (x) .next () , а не новый next (iter (x)) , что мне кажется предпочтительнее (и также работает в Python 3.1).

Однако, распаковка выигрывает у обоих:

$ python2.6 -mtimeit -s'x=set([1])' 'a,=x'
10000000 loops, best of 3: 0.174 usec per loop
$ python2.6 -mtimeit -s'x=set([1])' 'a,=x'
10000000 loops, best of 3: 0.174 usec per loop

Это, конечно, для наборов из одного элемента (где последняя форма, как упоминалось другими, имеет то преимущество, что быстро дает сбой, если набор, который вы «знали», имел только один элемент, на самом деле имел несколько ). Для наборов с произвольными N> 1 элементами кортеж замедляется, iter - нет:

$ python2.6 -mtimeit -s'x=set(range(99))' 'a=next(iter(x))'
1000000 loops, best of 3: 0.417 usec per loop
$ python2.6 -mtimeit -s'x=set(range(99))' 'a=tuple(x)[0]'
100000 loops, best of 3: 3.12 usec per loop

Итак, распаковка для одноэлементного случая и next (iter (x)) для общего случая, кажется лучшим.

  • Создание новых источников событий во время установки приложения
  • Вручную создать новую запись источника событий в реестре.

Итак, необходимо создать журнал вне приложения (вы не можете сделать это программно с этим пользователем. Сделайте это вручную или создайте простое приложение командной строки для упрощения установки).

Для получения полной информации:

http://msdn.microsoft.com/en-us/library/ms998320.aspx#paght000015_eventlogaccess

Лично я бы рекомендовал вам не изменять разрешения сетевого пользователя, а лучше создать источник журнала вне веб-приложения. Я предпочитаю консольное приложение (на написание которого у вас уйдет около 5 минут, которое вы также можете использовать для подготовки других машин). Запустите новое консольное приложение в VS.NET и добавьте код для создания источников журналов. Пример:

http: //www.dotnetspider. com / resources / 23593-Create-Event-log-VB-NET.aspx

Затем просто запустите консольное приложение из строки cmd, когда вы вошли в систему с соответствующими разрешениями.

19
ответ дан 4 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: