我有一个网站,这是一个日历与所有的基本功能(ASP.NET,MVC和SQL Server)。人们可以输入事件,查看其他事件等。一个人问我,是否有一种方法可以在他们的Outlook日历中查看这些事件-作为第二个日历。
我把所有数据都放在服务器上了。有没有推荐的方法让Outlook指向我的web服务器或日历数据库?我看到了从C#访问generate iCal files的方法。
如果是这样,在创建、删除等新事件时,此数据将如何保持同步?一次性转储是可以的,但担心的是数据会变得陈旧。有没有一种解决方案可以保持引用的动态性,使它们保持同步。(它只需要单向传输,我不认为需要在Outlook中创建或删除,因此outlook只是只读)
发布于 2012-10-17 20:39:48
我认为您可以创建iCalendar文件,然后publish它,所以让客户订阅您的互联网日历,因为互联网日历订阅是定期同步的日历保存在网络服务器上,并对互联网日历的任何更新都会自动下载到MS Outlook。
您可以使用DDay.Ical库通过C#创建(.ics)文件。
发布于 2012-10-17 21:19:54
假设您的问题是关于如何保持客户端和服务器端的同步,并且由于您只提到outlook作为客户端,因此有一种自定义方法来控制更新频率: microsoft有一个自定义日历属性:x-PUBLISHED TTL(请参阅microsoft msdn calendar)
2.1.3.1.1.15属性: X-PUBLISHED-TTL
简要说明:为具有同步功能的客户端和服务器指定建议的iCalendar文件下载频率。
但是请注意,此自定义属性将被其他日历忽略
发布于 2019-05-26 21:04:51
您可以尝试跟踪数据库中每个日历条目的更新顺序,并在日历事件表上添加触发器,以便在发生变化时自动发送事件更新。每个更新都将具有比之前的更新更高的序列属性,但UID (事件的唯一标识符)将保持不变。
但是,要实现这一点,您需要能够从SQL Server中发送iCalendar事件,这可以使用以下CLR项目来实现:
https://stackoverflow.com/questions/12933644
复制相似问题