我正在尝试一个简单的示例项目,以了解如何配置Windows Azure云服务以使用Co-located缓存。
我正在使用VS2010并且已经跟随this example但是当我到达关于共同定位缓存的部分的末尾时,我无法在本地运行我的项目。
时效果很好我得到以下例外情况:(我希望它是可读的......)
'/'应用程序出错。
请求的名称有效,但未找到所请求类型的数据
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.Net.Sockets.SocketException:请求的名称有效,但未找到所请求类型的数据
来源错误:
在执行当前Web请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息。
堆栈追踪:
[SocketException(0x2afc):请求的名称有效,但未找到所请求类型的数据] Microsoft.ApplicationServer.Caching.AsyncResultNoResult.EndInvoke()+ 202 Microsoft.ApplicationServer.Caching.AsyncResult`1.EndInvoke()+ 40 Microsoft.ApplicationServer.Caching.SocketConnectionFactory.EndConnect(IAsyncResult asyncResult)+75 Microsoft.ApplicationServer.Caching.TcpClientChannelFactory.TcpConnectionCallback(IAsyncResult result)+182
[DataCacheException:ErrorCode:SubStatus:暂时失败。请稍后重试。 (一个或多个指定的缓存服务器不可用,这可能是由繁忙的网络或服务器引起的。对于内部部署缓存集群,还要验证以下条件。确保已为此客户端帐户授予安全权限,并检查AppFabric允许缓存服务通过所有缓存主机上的防火墙。服务器上的MaxBufferSize也必须大于或等于从客户端发送的序列化对象大小。)。附加信息:客户端尝试与服务器通信:net.tcp:// SessionStateDemo:24233。 Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ErrStatus errStatus,Guid trackingId,Exception responseException,Byte [] [] payload,EndpointID destination)+767 Microsoft.ApplicationServer.Caching.DataCache.ThrowException(ResponseBody respBody,EndpointID destination)+149 Microsoft.ApplicationServer.Caching.DataCacheFactory.EstablishConnection(IEnumerable
1 servers, RequestBody request, Func
3 sendMessageDelegate,DataCacheReadyRetryPolicy retryPolicy)+1313 Microsoft.ApplicationServer.Caching。<> c__DisplayClass5.b__2(RequestBody req)+198 Microsoft.ApplicationServer.Caching.SocketClientProtocol.SendReceive(IVelocityRequestPacket请求,Func2 delegate, EndpointID& destination) +121 Microsoft.ApplicationServer.Caching.SocketClientProtocol.Initialize(IEnumerable
1台服务器)+1225 Microsoft.ApplicationServer.Caching.DataCacheFactory.GetCache(String cacheName,CreateNewCacheDelegate cacheCreationDelegate,DataCacheInitializationViaCopyDelegate initializeDelegate)+1104 Microsoft.ApplicationServer.Caching.DataCacheFactory.GetCache(String cacheName)+131 Microsoft.Web.DistributedCache.DataCacheFactoryWrapper.CreateDataCacheFromFactory(DataCacheFactory factory,String cacheName)+63 Microsoft.Web.DistributedCache.CacheHelpers.RunCacheCreationHooks(CacheConnectingEventArgs fetchingEventArgs,IDataCacheFactory dataCacheFactory,Object sender,EventHandler1 fetchingHandler, EventHandler
1 fetchedHandler)+306 Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider.CreateInternalProvider(IHttpRuntime httpRuntime,SessionInitializationData initData,IDataCacheFactory dataCacheFactory,EventHandler1 cacheFetching, EventHandler
1 cacheFetched)+399 Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider.GetInternalProvider()+315 Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider.CreateNewStoreData(HttpContext context,Int32 timeout)+59 System.Web.SessionState.SessionStateModule.InitStateStoreItem(Boolean addToContext)+160 System.Web.SessionState.SessionStateModule.CompleteAcquireState()+340 System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source,EventArgs e,AsyncCallback cb,Object extraData)+1269 System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+12698078 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)+288
谁能告诉我这里发生了什么?我该如何解决这个问题?
该教程中是否缺少我需要做的事情?
编辑:我正在使用VS2010 Professional,Windows Azure SDK 2.1。 Widnows Azure Cache包是v2.1.0。相关的web.config部分:
<system.web>
...
<!-- Windows Azure Caching session state provider -->
<sessionState mode="Custom" customProvider="AFCacheSessionStateProvider">
<providers>
<add name="AFCacheSessionStateProvider" type="Microsoft.Web.DistributedCache.DistributedCacheSessionStateStoreProvider, Microsoft.Web.DistributedCache" cacheName="default" dataCacheClientName="default" applicationName="AFCacheSessionState"/>
</providers>
</sessionState>
...
<sytem.web>
<dataCacheClients>
<dataCacheClient name="default">
<!--To use the in-role flavor of Windows Azure Caching, set identifier to be the cache cluster role name -->
<autoDiscover isEnabled="true" identifier="SessionStateDemo" />
</dataCacheClient>
</dataCacheClients>
答案 0 :(得分:0)
基于this thread,Windows Azure云服务看起来必须是一个正常运行的启动项目。否则,Windows Azure Runtime将不会初始化导致SocketExceptions的原因。