0

我有一个非常奇怪的问题。在 Windows 2008 DataCenter R2 上,我安装了 IIS 和 Framework 3.5,但是当我运行特定于 DotNet 3.5 的代码时,我遇到了问题。目标是读取所有用户会话(http://weblogs.asp.net/imranbaloch/archive/2010/04/05/reading-all-users-session.aspx)

这是理解问题的代码,也许可以自己测试:

object obj = typeof(HttpRuntime).GetProperty("CacheInternal", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null);

foreach (FieldInfo ofi in obj.GetType().GetFields(BindingFlags.NonPublic | BindingFlags.Instance))
{
Label1.Text += ofi.Name + "<br/>";
}

使用框架 3.5,返回应该是 - _disposed - _caches - _cacheIndexMask - _cacheCommon

但在我的服务器上,结果是 _entries _expires _usage _lock _disposed _totalCount _publicCount _maxCount _maxCountOverload _flushUndercount _insertBlock _useInsertBlock _insertBlockCalls _utcLastTrimCompleted _iSubCache _cacheMultiple _cacheCommon

与框架 2 一样

我有 2 台服务器,一台可以使用我的代码,而 System.Environment.Version 是 2.0.50727.4927,另一台出现问题 System.Environment.Versionis= 2.0.50727.5456

我已经尝试卸载/重新安装 Framework 3.5

我希望有一个人可以帮助我。问候

4

1 回答 1

0

一种方法...通过从零重新安装我的 Windows 2008 R2 DataCenter 服务器,我在“角色/功能”中选择了这个特定的顺序:

1 - 我选中 FrameWork3.5 2 - 系统要求安装 IIS,我选中复选框

而不是相反,即从检查的 IIS 开始并在 Framework 3.5 之后

现在很好,我的代码返回了我想要的:_disposed _caches _cacheIndexMask _cacheCommon

问题没有解决,第一行代码 object obj = typeof(HttpRuntime).GetProperty("CacheInternal", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null, null);

返回一个 CacheMultiple 或 CacheSingle 对象,因此它们是代码末尾的结果

但是为什么从服务器返回的一个或另一个对象不一样呢?

Antoher 重要的一点,System.Environment.Version = 2.0.50727.4927 但在它之前是 2.0.50727.5456 我不知道 2 之间的区别但是问题不是来自这个因为在我的开发机器上,我有 2.0.50727.5456 和第一个代码行返回好的对象:CacheMultiple

于 2012-09-14T08:26:50.067 回答