类型或命名空间名称“ProfileCommon”无法找到。

4

你好,我正在使用Visual Studio创建一个ASP.NET和C#的网站。我使用了ProfileCommon并遇到了以下错误:

找不到类型或命名空间名称“ProfileCommon”(是否缺少了using指令或程序集引用?)

希望这有一个快速的解决方法?我应该包含哪个指令?非常感谢。

编辑:有什么建议吗? - 在我安装了这个插件之后:http://archive.msdn.microsoft.com/WebProfileBuilder/Release/ProjectReleases.aspx?ReleaseId=980

Error 1 "BuildWebProfile"任务意外失败。 System.ArgumentNullException: 字符串引用未设置为字符串的实例。 参数名称: s at System.Text.Encoding.GetBytes(String s) at WebProfileBuilder.Builder.IsProfileSame() at WebProfileBuilder.Builder.GenerateWebProfile(BuildWebProfile buildWebProfile) at WebProfileBuilder.BuildWebProfile.Execute()
at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult) Cinemax


ASP.NET网络应用程序,爱尔兰。 - Anna T
然后请按照我的回答中的链接 :) - IrishChieftain
谢谢你,Irish!你的选项是我尝试的第三个。希望第三次能够成功!我会告诉你结果的。 - Anna T
此外,我应该把这个类放在哪里?通常我会把所有的类都放在App_Code文件夹中,这样可以吗? - Anna T
是的,试着将它放到App_Code文件夹中 :) - IrishChieftain
显示剩余7条评论
5个回答

1

请看这里:http://forums.asp.net/t/1031740.aspx/1 或者这里 错误 "The type or namespace name 'ProfileCommon' could not be found"

用户配置文件的基类是ProfileBase类,用于处理用户配置文件。当Web应用程序启用用户配置文件时,会创建一个名为ProfileCommon的新类。该类用于访问在配置文件部分中定义的每个属性的访问器。 ProfileCommon类的访问器然后调用getter和setter来检索和设置属性值。

您需要将using System.Configuration;System.Web.Profile;添加到您的项目中。

您可以在此处获取更多信息: http://msdn.microsoft.com/en-us/library/system.web.profile.profilebase.aspx

希望能帮到您!


谢谢Jason。我尝试了第一个链接并安装了插件,但是问题仍然存在。 - Anna T
尝试使用来自MSDN的最后一个链接中的说明,那应该会帮助你。 - Jason De Oliveira
你是否正在使用 System.Web.Profile;? - MMK
是的,我刚刚添加了System.Web.Profile,但仍然出现相同的错误。 - Anna T
请访问此链接,您可能会找到答案:http://weblogs.asp.net/joewrobel/archive/2008/02/03/web-profile-builder-for-web-application-projects.aspx - MMK
谢谢MMK,我尝试了那个方法,但是我得到了我在问题更新中提到的错误。真遗憾,因为我真的很喜欢这份文档。你在Visual Studio 2008上使用它成功了吗? - Anna T

1

很可能您正在使用Web应用程序项目模板。配置文件仅在网站项目模板中提供。有关解决方案,请参见此处此处


0

我花了很多时间来理解这个问题。对我来说,WebApplication项目在本地运行良好,但在部署版本的WebApplication上出现了错误。WebApplication不会自动创建ProfileCommon类。因此,我在项目中创建了以下类(没有命名空间,所有生成的代码都将看到它):

public class ProfileCommon: ProfileBase
{
}

就是这样!

但是,如果您使用页面的Profile属性来获取和更新当前用户配置文件,则可以从您的配置文件类继承,而不是从ProfileBase继承。


0

0

我遇到了类似的问题,即找不到ProfileCommon,并且我的ASP.NET网站无法构建,出现了非常没有帮助的错误:

The type initializer for 'System.Web.Compilation.CompilationLock' threw an exception.

我通过更正Web.config文件中sessionState模式的大小写来解决了这个问题:

<sessionState mode="Off"/>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接