我正在尝试设置本地nCache开发。在我的ASP.net代码中,我调用了以下内容:
Cache cache = NCache.InitializeCache("local-test");
然而,它抛出了一个OperationFailedException:
No server is available to process the request for local-test
知道为什么吗?文档说这个错误通常与防火墙问题有关,但是我在本地运行这个东西。
配置
在%NCHOME%\config\client.ncconf
中,识别缓存:
<cache id="local-test" client-cache-id="" client-cache-syncmode="optimistic" default-readthru-provider="" default-writethru-provider="" load-balance="True">
<server name="My IP address"/>
</cache>
... config.ncconf
具有以下定义:
<cache-config name="local-test" inproc="False" config-id="0" last-modified="" type="local-cache" auto-start="False">
<log enabled="True" trace-errors="True" trace-notices="False" trace-warnings="False" trace-debug="False"/>
<perf-counters enabled="True"/>
<compression enabled="False" threshold="100kb"/>
<notifications item-remove="False" item-add="False" item-update="False" cache-clear="False"/>
<cleanup interval="15sec"/>
<storage type="heap" cache-size="250mb"/>
<eviction-policy enabled="True" default-priority="normal" policy="lru" eviction-ratio="5%"/>
</cache-config>
答案 0 :(得分:1)
我列出了引发此异常的一些原因。 •当您尝试连接的缓存在计算机上停止时,有时会引发此错误
您可以通过从PowerShell运行'Get-Caches'cmdlet进行验证。如果当前不在此计算机上运行,则可以使用PowerShell中的“ Start-Cache” cmdlet启动缓存。
PowerShell指南:http://www.alachisoft.com/resources/docs/ncache/powershell-ref/
•当应用程序尝试连接到缓存时,将通过Client.ncconf文件(“ C:\ Program Files \ NCache \ config \ client.ncconf”)检查托管缓存的IP。如果提到的IP错误,则您的呼叫可能会转到完全不同的服务器,在该服务器中,缓存未运行或根本无法访问服务。
您可以检查针对Client.ncconf中的缓存配置的IP与您当前在包装盒上运行的IP是否相同。因此,例如,如果您的IP为“ 192.16.1.1”,则缓存的client.ncconf标记应如下所示。
<cache id="mycache" client-cache-id="" client-cache-syncmode="optimistic" default-readthru-provider="" default-writethru-provider="" load-balance="False" enable-client-logs="False" log-level="error">
<server name="192.16.1.1"/></cache>
此IP应该与NCache Service配置文件中配置的IP相同。 •如果计算机具有双IP,并且NCache Service在不同的IP上运行(而不是托管或配置为承载缓存的IP),则您的应用程序也可能会出现此错误。
请确保您的NCache服务当前也在正确的IP上运行。请对照NCache服务配置文件(C:\ Program Files \ NCache \ bin \ service \ Alachisoft.NCache.Service.exe.config)中的以下标记检查值
<add key="NCacheServer.BindToClusterIP" value=" xx.xx.xx.xx "/>
<add key="NCacheServer.BindToClientServerIP" value="xx.xx.xx.xx"/>
请确保该IP与Client.ncconf文件中配置的IP相同。 •在机器上启用了防火墙的情况下,也可能引发此错误,它可能是拒绝访问正在运行Cache主机进程的端口。
如果启用了防火墙,请确保在防火墙中打开了缓存端口。您可以从此文件“ C:\ Program Files \ NCache \ bin \ service \ CacheHostPorts.xml”验证缓存的端口。如果仍然无法解决问题,请完全禁用防火墙并进行检查。
答案 1 :(得分:1)
我安装了旧版本的NCache库。当我升级客户端DLL时,一切开始正常工作。