我们最近将我们的解决方案升级到.NET 4.5。
我已经明白System.Web.Security.MembershipUser已被移至System.Web.ApplicationServices.dll。
我在web.config文件中添加了对我们网站的引用:
<add assembly="System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
我在c#页面中使用了正确的“using”语句:
using System.Web.ApplicationServices;
但是,以下代码会在MembershipUser上抛出错误:
MembershipUser u = Membership.GetUser(User.Identity.Name);
我完全不确定此时该怎么做。我一整天都在研究这个并且已经应用了一些更改(即web.config更改)但是这个c#页面仍然无法识别更改并且错误仍然存在。
奇怪的是,即使存在此错误,该网站也将构建并可用,但此代码旨在解决的“更改密码”功能除外。
任何人都可以指出我可能缺少参考或装配的地方吗?
答案 0 :(得分:2)
我将c#和vb的CompilerVersions更改为4.0:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v4.0"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">
<providerOption name="CompilerVersion" value="v4.0"/>
<providerOption name="OptionInfer" value="true"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
此外,我们的编译目标框架未指定4.0。
<compilation debug="true" batch="false" batchTimeout="7200" targetFramework="4.0">
现在建立网站后,MembershipUser现在会按照我的预期显示出来。好哇。
从2.0升级到4.5并不顺利。
答案 1 :(得分:0)
对于.NET Framework 4.0或更高版本,请添加System.Web.ApplicationServices.dll的引用