#c# #iis #.net-core
#c# #iis #.net-core
Вопрос:
Я использую точку. сетевое ядро 5. У меня есть сервис, который должен генерировать уникальный идентификатор Guid каждый раз, когда я его создаю. До сих пор я использовал для этого файл startup.cs, но потом я заметил, что он недостаточно хорош.
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory, ILogger<Startup> logger)
{
...
KeyGenerator.GenerateNewGuidKeys();
engine.Startup(KeyGenerator.BusinessKey);
...
}
Причина в том, что что-то вроде IISRESET также запускает его, и мне нужно генерировать ключ только при сборке проекта.
Мне было интересно, как я могу добиться чего-то подобного?
Комментарии:
1. сделайте это в program.cs
2. program.cs не доступен для чего-то вроде IISRESET?
3. о, я пропустил IISRESET. IISRESET — перезапускает iis, поэтому все ваши сайты перезапускаются, а после перезапуска iis запускает ваши сайты, поэтому на самом деле не имеет значения, где вы создаете новый идентификатор guid, он будет вызываться при каждом запуске приложения
Ответ №1:
- Сгенерируйте идентификатор GUID перед сборкой в качестве предварительного шага, например, используя guidgen.exe , вывод в файл
- Включить файл в сборку в качестве ресурса
- Считывать идентификатор GUID из ресурса во время выполнения