Skip to main content
 首页 » 编程设计

c#之无法订阅使用 dday.ical 创建的 webcal 提要

2024年01月01日57dflying

我一直忙于为我的网站创建用户可以订阅的 iCal 源。经过一些最初的麻烦,我找到了 http://nerddinner.codeplex.com/ ,它的功能完全符合我的要求。下载源代码,根据需要修改它,完成。我现在可以创建一个链接来下载动态创建的 iCal 文件。可以用outlook打开,一切正常。

异常(exception):当我尝试创建日历提要而不是下载 .ics 文件时,outlook 告诉我它不是有效的日历文件。

我已将 iCal 文件的链接创建为:

<a href="webcal://mnelab.3me.tudelft.nl/MyLab/iCalFeed/B928B195-BCC5-4014-AD23-6002B3880A6B/EquipmentBookings">feed</a> 

(我正在使用 RiaLibrary.Web.dll 来创建“花哨”的 Url。)

当我单击该链接时,我的浏览器询问我是否要使用 outlook 打开提要。然后,当我单击“启动应用程序”时,outlook 会询问我是否愿意订阅提要。我单击"is",然后 outlook 显示文件“EquipmentBookings”不是有效的 Internet 日历文件。

当我将地址复制粘贴到我的浏览器中并将“webcal”替换为“http”时,文件下载正常并且在 outlook 中打开也正常。

生成的ics文件内容如下:

BEGIN:VCALENDAR 
VERSION:2.0 
METHOD:PUBLISH 
PRODID:-//ddaysoftware.com//NONSGML DDay.iCal 1.0//EN 
BEGIN:VEVENT 
DTEND:20120810T120000 
DTSTAMP:20120913T222252 
DTSTART:20120810T090000 
LOCATION:AFM Lab 
SEQUENCE:0 
SUMMARY:Nanosurf easyScan 2 STM 
UID:2bed0b80-fb1d-4539-b171-063287dad4a2 
END:VEVENT 
BEGIN:VEVENT 
DTEND:20120814T130000 
DTSTAMP:20120913T222252 
DTSTART:20120814T090000 
LOCATION:AFM Lab 
SEQUENCE:0 
SUMMARY:Nanosurf easyScan 2 STM 
UID:15d39ada-f80f-4b95-959d-a60937bb7a85 
END:VEVENT 
END:VCALENDAR 

我用 http://severinghaus.org/projects/icv/ 验证了它们一切似乎都很好。这是可以预料的,因为文件在 outlook 中打开时没有错误。它只是不被接受为提要。

有人知道这里发生了什么吗?

请您参考如下方法:

事实证明这是一个非常非常糟糕的身份验证问题。 Controller 类上有一个 [Authorize] 属性。我不知道我怎么没看到。不管怎样,现在已经修好了。