7

ローカル開発環境でAppFabricキャッシュを起動して実行しようとしています。Windows Server AppFabric Beta 2 Refreshをインストールし、キャッシュクラスターとホストを構成してWindows764ビットで実行を開始しました。統合モードのv4.0アプリプールの下で、ローカルIISWebサイトでMVC2Webサイトを実行しています。

HostName : CachePort      Service Name            Service Status Version Info
--------------------      ------------            -------------- ------------
SN-3TQHQL1:22233          AppFabricCachingService UP             1 [1,1][1,1]

web.configを次のように構成しています。

  <configSections>
        <section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowLocation="true" allowDefinition="Everywhere"/>
   </configSections>

   <dataCacheClient>
       <hosts>
           <host name="SN-3TQHQL1" cachePort="22233" />
       </hosts>
   </dataCacheClient>

DataCacheFactoryを初期化しようとすると、エラーが発生します。

    protected CacheService()
    {
        _cacheFactory = new DataCacheFactory(); <-- Error here
        _defaultCache = _cacheFactory.GetDefaultCache();
    }

次のようなASP.NETの黄色のエラー画面が表示されます。

既存の接続がリモートホストによって強制的に閉じられました

説明:現在のWebリクエストの実行中に未処理の例外が発生しました。エラーとエラーがコードのどこで発生したかについての詳細は、スタックトレースを確認してください。

例外の詳細:System.Net.Sockets.SocketException:既存の接続がリモートホストによって強制的に閉じられました

ソースエラー:

Line 21:         protected CacheService()
Line 22:         {
Line 23:             _cacheFactory = new DataCacheFactory();
Line 24:             _defaultCache = _cacheFactory.GetDefaultCache();
Line 25:         }
4

3 に答える 3

15

私も同様の問題を抱えていましたが、私の問題は、キャッシュクライアントに適切なアクセス許可を与えていなかったことです。これが問題であることをすばやく確認するために、すべてのアカウントにキャッシュへのアクセスを許可します。これで問題が解決した場合は、全員ではなく、適切なアカウントへのアクセスを制限することを検討してください。これは、WindowsServerAppFabricのスタートメニューフォルダーにある「CachingAdministratorWindowsPowerShell」を介して次のコマンドを実行することで実行できます。

Grant-CacheAllowedClientAccount everyone
于 2010-05-25T20:23:38.410 に答える
3

私もこの問題を抱えていて、このスレッドで答えを見つけました:

http://social.msdn.microsoft.com/Forums/vstudio/en-US/c27063e7-1579-4d62-9104-87076d1c8d98/client-caching-error-errorcodeerrca0017substatuses0006

答え:

クライアントとサーバー間のセキュリティ プロパティの不一致が原因で、このエラーが発生しています。

クライアント コードでは、セキュリティ (Mode=None および PotectionLevel=None) を無効にしましたが、キャッシュ サーバーは mode=Transport および PotectionLevel=EncryptAndSign (Beta2Fresh ビットのデフォルト) を使用します。

次のいずれかを実行します。

1) クライアント コードでは、デフォルトのセキュリティ、つまり configuration.SecurityProperties =new DataCacheSecurity(); を使用します。

2) サーバーのセキュリティを無効にして、既存のクライアント コードと一致させます。Powershell コマンドレット Set-CacheClusterSecurity を使用 -SecurityMode なし -ProtectionLevel なし

于 2013-09-26T09:35:37.953 に答える
1

DataCacheFactoryConfiguration オブジェクトを使用すると、同じ問題が発生しますか? 例えば

protected CacheService()
{
    DataCacheFactoryConfiguration config;
    List<DataCacheServerEndpoint> endpoints;
    DataCacheFactory factory;
    DataCache cache;

    endpoints = new List<DataCacheServerEndpoint>();
    endpoints.Add(new DataCacheServerEndpoint("SN-3TQHQL1",22233));

    config = new DataCacheFactoryConfiguration();
    config.Servers = endpoints;

    factory = new DataCacheFactory(config);

    cache = factory.GetDefaultCache();
    ...
}

ファイアウォールでポートを開いていますか?

イベント ログのエントリを確認すると、何が起きているか (または起きていないか) についての手がかりが得られる場合があります。

于 2010-05-14T16:59:45.163 に答える