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つのサーバーを持っています.1つは私のコードで問題なく、System.Environment.Versionはもう1つの問題で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 に答える