Pergunta

Estou tentando colocar o Cache Appfabric em funcionamento no meu ambiente de desenvolvimento local. Eu tenho Windows Server Appfabric Beta 2 Refresh Instalado, e o cluster de cache e o host configurado e começou a executar no Windows 7 de 64 bits. Estou executando meu site MVC2 em um site local do IIS em um pool de aplicativos V4.0 no modo integrado.

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

Eu tenho meu web.config configurado com o seguinte:

  <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>

Estou recebendo um erro quando tento inicializar o datacachefactory:

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

Estou recebendo a tela de erro amarelo do ASP.NET com o seguinte:

Uma conexão existente foi fechada à força pelo host remoto

Descrição: ocorreu uma exceção não tratada durante a execução da solicitação da Web atual. Revise o rastreamento da pilha para obter mais informações sobre o erro e onde se originou no código.

Detalhes da exceção: System.net.sockets.socketexception: Uma conexão existente foi fechada à força pelo host remoto

Erro de fonte:

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

Solução

Também tive um problema semelhante, e meu problema era que não havia dado as permissões adequadas ao cliente de cache. Para verificar rapidamente que este é o problema, eu concederia o acesso à conta de todos ao cache. Se isso resolver o problema, procure o acesso limitador à conta apropriada, e não a todos. Isso pode ser feito executando o seguinte comando através do "Administrador de cache Windows PowerShell", que é encontrado na pasta de menus do Windows Server Appfabric:

Grant-CacheAllowedClientAccount everyone

Outras dicas

Eu também tive esse problema e encontrei a resposta neste tópico:

http://social.msdn.microsoft.com/forums/vstudio/en-us/c27063e7-1579-4d62-9104-87076d1c8d98/client-caching-error-errrorcodeerrCa0017substatuse

A resposta:

Você está vendo esse erro devido à incompatibilidade de propriedades de segurança entre cliente e servidor.

No seu código de cliente, você desativou a segurança (modo = Nenhum e PotectionLevel = Nenhum), enquanto o servidor de cache usa o modo = transporte e POVECTIONLEVEL = EncryptandSign (padrão em bits beta2fresh).

Faça qualquer um dos seguintes:

1) No código do cliente, use a segurança padrão, ie, configuração.SecurityProperties = new DatacacheSecurity ();

2) Desative a segurança no servidor para corresponder ao código do cliente existente. Use PowerShell cmdlet Set -CachecLusterSecurity -SecurityMode Nenhum -ProtectionLevel Nenhum

Você obtém o mesmo problema se usar um objeto DataCacheFactoryConfiguration? por exemplo

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();
    ...
}

Você abriu a porta no seu firewall?

Talvez verifique as entradas nos seus logs de eventos - eles podem oferecer pistas sobre o que está (ou não).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top