System.Runtime.Serialization.SerializationException: 未解析成员
遇到一个奇怪问题 项目在vs环境中运行时候出现问题:
未解析成员“Accounts.Common.Security.UserPrincipal,Accounts.Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null”的类型。
但是这个在iis环境中运行是正常的。造成这种结果的原因可能是由于两个地方引用了一个相同的类 或dll文件 但是版本却不一致。
解决方法:
1.如果想在vs环境中运行正常可以在类中添加MarshalByRefObject
例如:
public class UserPrincipal : MarshalByRefObject, IPrincipal
{
..........
}
2.(针对自己程序)
改写代码
HttpApplication app = (HttpApplication)source;
app.Context.User = new UserPrincipal(WebAuthentication.CurrentIdentity());
为
HttpApplication app = (HttpApplication)source;
IIdentity id = WebAuthentication.CurrentIdentity();
GenericIdentity gid = new GenericIdentity(id.Name, id.AuthenticationType);
app.Context.User = new GenericPrincipal(gid, new string[0]);