繁体   English   中英

如何控制何时更新了远程iCal(.ics)文件并且日历应该同步?

[英]How to control when a remote iCal (.ics) file has been updated and the calendar should sync?

我正在使用asp.net 4(网络表单)的系统来管理事件,并将有关这些事件的电子邮件发送给客户。

我已经创建了一个页面,该页面可以根据数据库中的数据动态创建.ics文件,客户可以下载该页面以将事件添加到Outlook和iCalendar。 该文件是通过响应发送的,因此我实际上并未将文件存储在服务器上。 由于我可以为此文件提供一个webcal://地址,因此只要有人在我们的系统中更改事件的设置,它也可以同步。

.ics示例:webcal://www.abc.com/get-ics.aspx?id = 123

但是,由于我们的客户与动态生成的文件同步,因此这迫使我们的服务器在其日历应用程序每次想要同步时都生成文件。 由于这将每小时导致数十万个请求,因此服务器将受到相当大的惩罚。

因此,我的实际问题是:Outlook和其他日历应用程序如何知道ics文件已更新并且需要提取更新的文件? 我需要管理它,以便仅在进行实际更新时才生成一个新文件,而不是在每个单独的请求上都生成一个新文件。 主要问题是我们不希望将实际文件存储在服务器上。

启动一项服务,该服务将轮询文件并检查HTTP更改标头。 如果有更改,请重新下载。 我不知道精确的实现。 但这应该是一个起点。

> How does Outlook and other calendar applications know 
> when an ics-file has been updated and needs to fetch the updated file?

每个日历条目都有一个唯一标识,最后一个修改并与一个或多个用户相关联。

  • 客户可以要求给我2002年12月24日以来对userid = 123的所有更改
  • 或每个用户生成一个ical文件的服务器为该文件提供最新条目的修改日期

请注意,这不处理从日历中删除的条目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM