Я работаю над системой asp.net 4 (веб-формы), которая управляет событиями и рассылает электронные письма об этом клиентам.
Я создал страницу, которая динамически создает файл .ics на основе данных из нашей базы данных, которые клиенты могут загрузить, чтобы добавить события в Outlook и iCalendar. Этот файл отправляется через Response, поэтому я не храню файл на сервере. Поскольку я могу предоставить адрес webcal: // для этого файла, он также может быть синхронизирован всякий раз, когда кто-то изменяет настройки для события в нашей системе.
Пример .ics: webcal: //www.abc.com/get-ics.aspx? Id = 123
Однако, поскольку наши клиенты синхронизируются с динамически генерируемым файлом, это заставляет наш сервер генерировать файл каждый раз, когда их приложение календаря хочет синхронизировать. И так как это будет вызывать пару сотен тысяч запросов каждый час, сервер будет довольно сильно наказан.
Итак, мой актуальный вопрос: как Outlook и другие приложения-календари узнают, когда обновлен ics-файл и ему нужно получить обновленный файл? Мне нужно управлять этим, чтобы генерировать новый файл только при наличии фактического обновления, а не при каждом отдельном запросе. Основная проблема в том, что мы не хотим хранить актуальные файлы на сервере.