删除现有配置文件提供

时间:2009-05-20 21:46:44

标签: c# .net asp.net sql profiling


Q1 本书建议在我们注册新的 SqlProfileProvider 之前,我们应该使用<clear>元素删除任何现有的配置文件提供程序。但是:

A)为什么我们必须使用<clear>代替<remove>

B)我假设root web.config machine.config 没有注册(默认情况下)任何配置文件提供程序,因此使用<clear>元素没有必要吗?


Q2 我假设为什么每个配置文件属性在数据库表中没有相应的列(而所有属性都存储在单个字段中)是由于每次我们添加和删除配置文件属性的事实,我们还需要更改表架构?


感谢名单

2 个答案:

答案 0 :(得分:2)

实际上,默认情况下会在AspNetSqlProfileProvider添加System.Web.Profile.SqlProfileProvidermachine.config类型)。查看您的C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG目录(或其他位置)。但是,它未在那里注册为默认提供程序。因此,如果您对default settings感到满意,则可以使用以下配置:

<profile enabled="true" defaultProvider="AspNetSqlProfileProvider" />

如果您想使用自定义提供程序,通常最好清除所有现有提供程序(尽管不是必需的)并命名另一个默认提供程序。

不使用remove的原因是它需要name属性,您可能不知道。使用clear删除所有以前注册的配置文件提供程序,使用remove只删除一个名称。

关于Q2你是对的。使用的数据库方案必须足够通用,以容纳许多不同的属性(和属性类型)。

答案 1 :(得分:1)

RWWilden's answer开始,有一个SQL表配置文件提供程序可用,它将属性映射到数据库中的列:

  

Table Profile Provider Samples

ScottGu在这里简要介绍了他们:

  

ASP.NET 2.0 SQL Table Profile Provider