我在使用Windows Azure缓存预览时遇到了一些麻烦。
我在这里添加了Nuget包:http://nuget.org/packages/Microsoft.WindowsAzure.Caching并根据windowsazure.com上的信息配置了我的角色来存储ASP.NET会话状态
问题是,我在调试时得到No connection could be made because the target machine actively refused it 127.255.0.0:20004
。 Azure使用的开发IP是12.7.0.0.1:81
我不知道为什么,即使样本Windows Azure Caching (Preview) Session State and Output Caching Sample
完全相同。
更新:日志错误:
w3wp.exe Error: 0 : ERROR: <SimpleSendReceiveModule> b4551065-941b-4bdb-9487-57d9207af308:Request - 1, result - Status=ChannelOpenFailed[System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it 127.255.0.0:20004
at Microsoft.ApplicationServer.Caching.AsyncResultNoResult.EndInvoke()
at Microsoft.ApplicationServer.Caching.TcpClientChannel.ConnectionCallback(IAsyncResult result)] for end point [net.tcp://127.255.0.0:20004]
此外,更多测试显示它不是用于会话状态存储,而是用于所有与缓存相关的任务。
答案 0 :(得分:3)
找到答案,在webrole或workerrole属性中,将实例数设置为最小2,这对我来说是个问题。经过8个小时的调试后得到解决
答案 1 :(得分:0)
我个人没有看到这个错误,所以我在黑暗中采取了一些刺...
您是否在角色属性标签中启用了缓存预览?该步骤设置缓存解决方案的“服务器”端。
您还需要确保各种配置中的名称一致,否则缓存客户端将无法找到该服务。您应该在dataCacheClient部分的web.config中找到其中一个。特别是标识符属性。
答案 2 :(得分:0)
对于其他有相同问题的人,如果Sundara Prabu提出的决议不起作用,还有其他两种可能的解决方案:
HH:mm:ss
。正如我通过阅读this SO answer发现自己一样,缓存模拟器调用logman.exe
进行日志记录,特别是它使用cnf
参数,该参数需要HH:mm:ss
格式的持续时间。缓存模拟器使用区域设置中的长时间格式来格式化此持续时间 - 在我的情况下,使用Windows 8下的意大利语设置使用的格式为HH.mm.ss
,从而导致问题中描述的问题。