.net配置文件提供程序和自定义配置文件.设置属性''没有找到
本文关键字:配置文件 设置 程序 net 自定义 属性 | 更新日期: 2023-09-27 18:16:12
我遇到了一点麻烦。我在同一个解决方案中的两个应用程序中使用了一个自定义配置文件。第一个是我构建的一个web应用程序,它将一组自定义的用户配置文件和属性从一个旧的。net应用程序导入到。net成员、成员、角色、配置文件表中。我构建了一个从profilebase继承的概要文件公共类。两个应用程序在其命名空间中都有一个相同类的副本。
using System;
using System.Web.Security;
using System.Web.Profile;
using System.Collections.Specialized;
namespace WebProject
{
public class ProfileCommon : ProfileBase
{
public static ProfileCommon GetUserProfile(string username)
{
return Create(username) as ProfileCommon;
}
public static ProfileCommon GetUserProfile()
{
return Create(Membership.GetUser().UserName) as ProfileCommon;
}
[SettingsAllowAnonymous(false)]
public string FirstName
{
get
{
return base["FirstName"] as string;
}
set
{
base["FirstName"] = value;
}
}
[SettingsAllowAnonymous(false)]
public string LastName
{
get
{
return base["LastName"] as string;
}
set
{
base["LastName"] = value;
}
}
[SettingsAllowAnonymous(false)]
public string Email
{
get
{
return base["Email"] as string;
}
set
{
base["Email"] = value;
}
}
[SettingsAllowAnonymous(false)]
public StringCollection Sites
{
get
{
return base["Sites"] as StringCollection;
}
set
{
base["Sites"] = value;
}
}
}
}
在我的web配置文件中我的配置文件提供程序部分看起来像这样。
<profile defaultProvider="WebProjectProfileProvider" inherits="WebProject.ProfileCommon">
<providers>
<clear />
<add name="WebProjectProfileProvider" applicationName="/" type="System.Web.Profile.SqlProfileProvider" connectionStringName="Test"/>
</providers>
</profile>
如果我使用一个应用程序来执行用户导入,而另一个应用程序使用我创建的成员、角色和配置文件,这会导致"设置属性"未找到错误吗?我似乎无法确定错误是在哪里引起的,以及我已经检查过的一些最常见的原因。这是我第一次在。net中如此大规模地使用这个特性。如有任何帮助,不胜感激。
谢谢。
我找到我的问题了。问题出在呼叫代码上。我遇到了很多关于配置文件的问题,以至于我忘记将调用代码更改回静态方法
ProfileCommon.GetUserProfile();
我遇到的另一个问题是在web配置中声明配置文件的属性,并在配置文件的公共类中声明它们。这导致我得到诸如"属性已被定义"answers"未找到设置属性"之类的翻转错误。
简而言之,在代码中声明ProfileCommon代理类而不是在web中。如果您正在使用"Web应用程序"解决方案。在web中声明属性。如果您使用的是"web站点"解决方案,请配置
我在网上看到的最好的例子是这个网站。
ASP。Web应用程序项目中的。NET配置文件
它以简洁的摘要描述了如何使用自定义配置文件,并充分解释了为什么这种方法在web应用程序中执行,以及为什么在web站点中使用不同的方法。