我一直试图从我的web.config中获取缓存元素,但到目前为止都失败了。
使用此代码时:
Configuration conf = WebConfigurationManager.OpenWebConfiguration(System.Web.Hosting.HostingEnvironment.ApplicationVirtualPath);我能够得到web.configh文件。当我使用
conf.GetSection("system.web/membership");我成功地进入了会员区。
当我使用
conf.GetSection("system.web/caching");我得到null。
有什么想法吗?
下面是web.config的一部分:
<system.web>
<caching>
<sqlCacheDependency enabled="true" pollTime="1000">
<databases>
<clear />
<add name="Tests" pollTime="1000" connectionStringName="TestsConnectionString"/>
</databases>
</sqlCacheDependency>
</caching>
<authentication mode="Forms">
<forms loginUrl="~/Account/Login.aspx" timeout="2880"/>
</authentication>
<membership>
<providers>
<clear/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
</providers>
</membership>……
发布于 2018-04-23 14:42:20
您是否正确地将返回类型转换为OutputCacheSection?
const string outputCacheKey = "system.web/caching/outputCache";
var outputCacheSection = ConfigurationManager.GetSection(outputCacheKey) as OutputCacheSection;现在假设您想要在第一个提供者节点中获得一个名为connectionString的属性。
<caching>
<outputCache enableOutputCache="true" defaultProvider="MyRedisOutputCache">
<providers>
<add name="MyRedisOutputCache" connectionString="myapp.redis.cache.windows.net:6380,password=hellopassword,ssl=True,abortConnect=False" type="Microsoft.Web.Redis.RedisOutputCacheProvider,Microsoft.Web.RedisOutputCacheProvider" />
</providers>
</outputCache>
</caching>你可以这样做
string defaultProviderName = outputCacheSection.DefaultProviderName;
ProviderSettings ps = outputCacheSection.Providers[defaultProviderName];
var cs = ps.Parameters["connectionString"];https://stackoverflow.com/questions/5142882
复制相似问题