7

我正在尝试在我的本地开发环境中启动并运行 AppFabric 缓存。我安装了Windows Server AppFabric Beta 2 Refresh,缓存群集和主机已配置并开始在 Windows 7 64 位上运行。我在集成模式下的 v4.0 应用程序池下的本地 IIS 网站中运行我的 MVC2 网站。

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

我也有类似的问题,我的问题是我没有给缓存客户端适当的权限。为了快速验证这是我将授予每个人帐户访问缓存的问题。如果这解决了问题,那么请考虑限制对适当帐户而不是所有人的访问。这可以通过 Windows Server AppFabric 开始菜单文件夹中的“缓存管理员 Windows PowerShell”执行以下命令:

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 cmdlet 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 回答