DataCacheFactory构造的Appfabric问题

时间:2015-08-07 07:14:16

标签: c# .net sharepoint appfabric appfabric-cache

升级到Visual Studio 2015后,我在Windows服务中托管的AppFabric客户端不再启动。当服务启动并且工厂封装在Cache单例类中时,DataCacheFactory构造函数抛出异常。这是例外。

  

8/4/2015 9:51:47 PM服务启动错误:   System.TypeInitializationException:类型初始值设定项   ' ioService.IoService'抛出一个例外。 --->   Microsoft.ApplicationServer.Caching.DataCacheException:   ErrorCode:SubStatus:暂时失败。   请稍后重试。 (一个或多个指定的缓存服务器是   不可用,这可能是由繁忙的网络或服务器引起的。确保   已为此客户帐户授予安全权限   群集和允许AppFabric缓存服务通过   所有缓存主机上的防火墙。稍后重试。)at   Microsoft.ApplicationServer.Caching.ClientDRM.InitializeCasClient(字符串   id,TimeSpan chnlOpenTimeout)at   Microsoft.ApplicationServer.Caching.DataCacheFactory.InitDrm()at   Microsoft.ApplicationServer.Caching.DataCacheFactory..ctor(DataCacheFactoryConfiguration   配置)在ioService.Cache..ctor()

当旧的Visual Studio 2013生成的程序集重新启动时,它会再次启动,而不是一行代码就不同!! 只需仔细检查,配置文件也完全一样。

我真的不知道该怎么做了,因为关于appfabric的信息不是呃.......我可以在这里问这个问题。有没有人经历过同样的事情?

这是代码,如果有帮助:

internal class Cache
    {
        private static volatile Cache mCache = null;
        private static object SyncRoot = new object();

        private DataCache mArticleCache;
        // FAULTING INSIDE CONSTRUCTOR...
        private DataCacheFactory mCacheFactory = new DataCacheFactory();

        public static Cache Instance
        {
            get
            {
                if (mCache == null)
                {
                    lock (SyncRoot)
                    {
                        if (mCache == null) // search DCLP for why 2x if
                            mCache = new Cache();
                    }
                }
                return mCache;
            }
        }

        public DataCache ArticleCache
        {
            get { return mArticleCache; }
        }

        private Cache()
        {
            mArticleCache = mCacheFactory.GetCache(ConfigurationManager.AppSettings["Cache.ArticleCacheName"]);

            try
            {
                mArticleCache.CreateRegion(ConfigurationManager.AppSettings["Cache.ArticleRegionName"]);
            }
            catch (DataCacheException dcex)
            {
                if (dcex.ErrorCode != DataCacheErrorCode.RegionAlreadyExists)
                    throw dcex;
            }
        }
    }

更新 在appfabric服务级别启用跟踪后,Microsoft服务跟踪查看器显示以下错误:

enter image description here

maxOutboundConnectionsPerEndpoint可能太低了。如何在AppFabric中更改此数字?

更新2

项目文件不同。这是appfabric的旧部分

     <Reference Include="Microsoft.ApplicationServer.Caching.Client">
<HintPath>..\..\..\..\temp\AppFabric\Microsoft.ApplicationServer.Caching.Client.dll</HintPath>
        </Reference>
        <Reference Include="Microsoft.ApplicationServer.Caching.Core">
<HintPath>..\..\..\..\temp\AppFabric\Microsoft.ApplicationServer.Caching.Core.dll</HintPath>
        </Reference>

新部分

   <Reference Include="Microsoft.ApplicationServer.Caching.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\..\temp\AppFabric\Microsoft.ApplicationServer.Caching.Client.dll</HintPath>
    </Reference>
    <Reference Include="Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\..\temp\AppFabric\Microsoft.ApplicationServer.Caching.Core.dll</HintPath>
    </Reference>

现在包含版本和publickeytoken,并添加了SpecificVersion false标记。

0 个答案:

没有答案