本周 Chunk 将回答由 Builder 澳大利亚读者提出的几个比较难的问题,大致是有关难于找到 .NET 文档的问题。
亲爱的 Chuck:
我们开发了一个用于 MSN 和 Windows Messenger 的插件,其实只是一个消费者产品。最近 MSN(5.0)的变化使我们很难再对其进行集成。在查看微软提供的文档时,我们发现它指出需要第三方开发人员使用一个“锁和钥匙(lock and key)”来访问特定的属性。文件中提供的 URL 链接不到任何地方,而且所有我们对微软美国的询问都没有成功。你能告诉我们有什么方法可以访问这些锁和钥匙信息吗?
Chuck:
我必须承认这个问题所花时间比我预计的要长很多。前面提到的 MSN Windows Messenger 的文档和 API 是老文档,这些文档在 SDK 中已经更新,但是由于一系列不幸的事件,老文档和老文档中的电子邮件地址依然都是“活的”,找到负责这一过程的人去纠正它们花了我很多时间,如果你现在(3月20日)查看 Messenger 的文档,你将看到没有再提起 msgrapi@microsoft.com,也没有暗示说可以获取一个 id/key 对(id/key pair)来利用这些 API 访问 .NET Messenger Service。
本周我还收到了一个不完全类似的问题,问题是关于 ASP.NET 的状态管理的:
亲爱的 Chunk:
我目前正在学习一个 MCSD 科目 70-315(使用 Visual C# .NET 和 Visual Studio .NET 开发和实现 Web 应用程序),我看到书中的一个答案是说传统的 ASP 和 ASP.NET 可以通过设置 <sessionState mode="InProc"> 来共享会话状态。如果 ASP 和 ASP.NET 以不同的进程运行,这怎么可能呢?
Chuck:
不幸的是,这个另一个文档没有被纠正的情况,因为无论使用四个 ASP.NET sessionState 设置的哪一种,都无法在 ASP 和 ASP.NET 中共享会话状态。(ASP.NET sessionState 的四种设置分别为:Off、InProc、StateServer
和 SQLServer)。这不是由 ASP 和 ASP.NET 的不同空间引起的(例如,System.EnterpriseServices
中具有一个托管接口来调用进程外 COM+ 编录),更多地是围绕这样一个事实:ASP.NET 团队事先考试了与 ASP 的向后兼容性方面做了很多决策,有得于将来使 ASP.NET 架构能够更加坚固。一些主题 Chris Kinsman 的书“Visual Basic® .NET 开发人员 ASP.NET、XML 和 ADO.NET 指南”演练了 SQLServer sessionState 的数据格式,如果你想要尝试通过一个 SQL
表连接 ASP 或 ASP.NET sessionState,我建议你使用
Billy Yuen 在他的 MSDN 文章“How to Share Session State Between Classic ASP and ASP.NET”中的方法,这种方法使用 Cookie 实现这一功能.