Является ли GUID уникальным в 100% случаев?

Я всегда сохранял все версии конфигурационных файлов в исходном элементе управления в той же папке, что и файл web.config.

Например

web.config
web.qa.config
web.staging.config
web.production.config

Я предпочитаю это (в отличие от web.config.production или production.web.config), потому что

  • Он хранит файлы вместе при сортировке по имени файла
  • Он сохраняет файлы вместе при сортировке по расширению файла
  • Если файл случайно попадает в производство, вы не сможете увидеть содержимое через http, потому что IIS предотвратит подачу файлов * .config

Конфигурационный файл по умолчанию должен быть настроен таким образом, чтобы вы могли запускать приложение локально на своем собственном компьютере.

Самое главное, эти файлы должны быть почти на 100% идентичны в каждом аспекте, даже форматирование. Вы не должны использовать вкладки в одной версии и пробелы в другом для отступов. Вы должны иметь возможность запускать инструмент сравнения с файлами, чтобы увидеть, что между ними отличается. Я предпочитаю использовать WinMerge для различения файлов.

Когда ваш процесс сборки создает двоичные файлы, должна быть задача, которая перезаписывает файл web.config с конфигурационным файлом, соответствующим этой среде. Если файлы заархивированы, то ненужные файлы должны быть удалены из этой сборки.

463
задан ljs 2 September 2008 в 15:22
поделиться

11 ответов

, В то время как каждый сгенерированный GUID, как гарантируют, не будет уникален, общее количество уникальных ключей (2 <глоток> 128 или 3.4Г — 10 <глоток> 38 ) является столь большим, что вероятность того же числа, сгенерированного дважды, является очень маленькой. Например, рассмотрите заметную вселенную, которая содержит о 5Г — 10 <глоток> 22 звезды; каждая звезда могла тогда иметь 6.8Г — 10 <глоток> 15 универсально уникальные GUID.

От Википедия .

<час>

Это некоторые хорошие статьи о том, как GUID сделан (для.NET) и как Вы могли получить тот же гуид в правильной ситуации.

https://ericlippert.com/2012/04/24/guid-guide-part-one /

https://ericlippert.com/2012/04/30/guid-guide-part-two /

https://ericlippert.com/2012/05/07/guid-guide-part-three /

†"вЂ"

390
ответ дан Luke Girvin 2 September 2008 в 15:22
поделиться

GUID уникальные 100% времени?

Не гарантируемый, с тех пор существует несколько способов генерировать тот. Однако можно попытаться вычислить шанс создания двух GUID, которые идентичны, и Вы получаете идею: GUID имеет 128 битов, следовательно, существует 2 <глоток> 128 отличные GUID †“ очень [еще 114], чем в известной вселенной существуют звезды. Читайте статья Википедии для получения дополнительной информации.

3
ответ дан Konrad Rudolph 2 September 2008 в 15:22
поделиться

MSDN:

существует очень низкая вероятность, что значение нового Гуида, все обнуляет или равный любому другому Гуиду.

4
ответ дан Jakub Šturc 2 September 2008 в 15:22
поделиться

Если Ваши системные часы будут установлены правильно и не повторятся, и если Ваш NIC будет иметь свой собственный MAC (т.е. Вы не установили пользовательский MAC), и Ваш поставщик NIC не перерабатывал MACS (который они, как предполагается, не делают, но который, как было известно, произошел), и если функция поколения GUID Вашей системы будет правильно реализована, то Ваша система никогда не будет генерировать дублирующиеся GUID.

, Если все на земле, кто генерирует GUID, следуют тем правилам тогда, Ваши GUID будут глобально уникальны.

На практике, число людей, которые нарушают правила, является низким, и их GUID вряд ли "выйдут". Конфликты являются статистически невероятными.

4
ответ дан DrPizza 2 September 2008 в 15:22
поделиться

Теоретически, нет, они не уникальны. Возможно генерировать идентичный гуид много раз. Однако возможности его, случай является настолько низким, что можно предположить, что они уникальны.

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

я предпринял попытку для описания полноценности GUID моей аудитории блога (нетехническая семья memebers). Оттуда (через Википедию), разногласия генерации дублирующегося GUID:

  • 1 в 2^128
  • 1 в 340 undecillion (don’t беспокойство, undecillion не находится на тесте)
  • 1 в 3,4 Г — 10^38
  • 1 в 340,000,000,000,000,000,000,000,000,000,000,000,000
15
ответ дан Michael Haren 2 September 2008 в 15:22
поделиться

Гуиды статистически уникальны. Разногласия двух различных клиентов, генерирующих тот же Гуид, являются бесконечно мало маленькими (принимающий ошибки в генерирующемся коде Гуида). Можно также волноваться о процессоре, дающем незначительный сбой из-за космического луча и решая это 2+2=5 сегодня.

Несколько потоков, выделяющих новые гуиды, получат уникальные значения, но необходимо получить это функция, которую Вы вызываете, ориентировано на многопотоковое исполнение. В котором среда - это?

21
ответ дан Rob Walker 2 September 2008 в 15:22
поделиться

Простой ответ - да.

Raymond Chen записал большая статья о GUID и почему подстроки GUID не , гарантировал уникальный. Статья входит на некоторую глубину относительно способа, которым GUID сгенерированы и данные, которые они используют для обеспечения уникальности, которая должна перейти к некоторой длине в объяснении , почему они-:-)

61
ответ дан ljs 2 September 2008 в 15:22
поделиться

Да, GUID должен всегда быть уникальным. Это основано и на аппаратных средствах и время плюс несколько дополнительных битов, чтобы удостовериться, что это уникально. Я уверен, что теоретически возможно закончиться с двумя идентичными, но крайне маловероятно в реальном сценарии.

Вот большая статья Raymond Chen на Гуидах:

https://blogs.msdn.com/oldnewthing/archive/2008/06/27/8659071.aspx ​ ​ ​

26
ответ дан Jogge 2 September 2008 в 15:22
поделиться

Для более лучше заканчиваются, лучший способ состоит в том, чтобы добавить GUID с меткой времени (Только, чтобы удостовериться, что это остается уникальным)

Guid.NewGuid().ToString() + DateTime.Now.ToString();
1
ответ дан 22 November 2019 в 22:43
поделиться

Кстати, я экспериментировал с GUID тома в Windows XP. Это очень непонятная схема разделов с тремя дисками и четырнадцатью томами.

\\?\Volume{23005604-eb1b-11de-85ba-806d6172696f}\ (F:)
\\?\Volume{23005605-eb1b-11de-85ba-806d6172696f}\ (G:)
\\?\Volume{23005606-eb1b-11de-85ba-806d6172696f}\ (H:)
\\?\Volume{23005607-eb1b-11de-85ba-806d6172696f}\ (J:)
\\?\Volume{23005608-eb1b-11de-85ba-806d6172696f}\ (D:)
\\?\Volume{23005609-eb1b-11de-85ba-806d6172696f}\ (P:)
\\?\Volume{2300560b-eb1b-11de-85ba-806d6172696f}\ (K:)
\\?\Volume{2300560c-eb1b-11de-85ba-806d6172696f}\ (L:)
\\?\Volume{2300560d-eb1b-11de-85ba-806d6172696f}\ (M:)
\\?\Volume{2300560e-eb1b-11de-85ba-806d6172696f}\ (N:)
\\?\Volume{2300560f-eb1b-11de-85ba-806d6172696f}\ (O:)
\\?\Volume{23005610-eb1b-11de-85ba-806d6172696f}\ (E:)
\\?\Volume{23005611-eb1b-11de-85ba-806d6172696f}\ (R:)
                                     | | | | |
                                     | | | | +-- 6f = o
                                     | | | +---- 69 = i
                                     | | +------ 72 = r
                                     | +-------- 61 = a
                                     +---------- 6d = m

Дело не в том, что идентификаторы GUID очень похожи, а в том, что все идентификаторы GUID содержат строку «марио». Это совпадение или есть какое-то объяснение?

Теперь, когда поискал в Google часть 4 в GUID, я обнаружил около 125 000 обращений с GUID тома.

Заключение: Когда дело доходит до GUID томов, они не так уникальны, как другие GUID.

36
ответ дан 22 November 2019 в 22:43
поделиться

Этого не должно случиться. Однако, когда .NET находится под большой нагрузкой, можно получить дубликаты направляющих. У меня есть два разных веб-сервера, использующих два разных sql сервера. Я пошел объединять данные и обнаружил, что у меня 15 миллионов гидов и 7 дубликатов.

26
ответ дан 22 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

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