ris*_*ism 4 asp.net debugging serialization cassini visual-studio
我试着:
((Request.Params["crmid"] != null))
Run Code Online (Sandbox Code Playgroud)
在网页中.但它不断抛出序列化异常:
类型"QC.Security.SL.SiteUser"在组件"QC.Security,版本= 1.0.0.1,文化=中性公钥=空"未标记为可序列.
然而,类型(自定义IIdentity)标记为可序列化如下:
[Serializable()]
public class SiteUser : IIdentity
{
private long _userId;
public long UserId { get { return _userId; } set { _userId = value; } }
private string _name;
public string Name { get { return _name; } }
private bool _isAuthenticated;
public bool IsAuthenticated { get { return _isAuthenticated; } }
private string _authenticationType;
public string AuthenticationType { get { return _authenticationType; } }
Run Code Online (Sandbox Code Playgroud)
我不知道如何调试这个,因为我无法进入序列化器代码,以找出它为什么会摔倒.调用堆栈在到达[外部代码]之前只有一帧深度.并且错误消息是无用的,因为类型明确标记为可序列化.试验和错误调整也产生了一个类型未解决的成员异常.
它工作正常.但现在"突然间"它并不通常意味着Visual Studio中的一些愚蠢的错误,但重启并没有帮助"这个"时间.所以现在我不知道这是一个愚蠢的VS错误还是一个完全不相关的错误,我得到了序列化异常或者我做错了什么.
事实上,我不再相信VS了,因为过去几个月我一直在进行的疯狂追逐数量,这是通过重新启动VS 2008或其他一些荒谬的解决办法来"修复"的.
好的,我已经解决了这个问题.这是另一个VS /卡西尼问题.根据此 URL和此 URL,解决方法是使SiteUser继承MarshalByRefObject.
这是必要的,因为:
问题是cassini将随意分解到单独的AppDomain,这在IIS中不会发生(即使他们说它是CAN).因此,当Atlas尝试将JSON转换为服务器上的某些内容时,它会执行某些操作,并且.User自定义主体不会反序列化,因为程序集不在GAC中而未在其他AppDomain中注册.
"开发人员开发人员咳嗽 "
归档时间: |
|
查看次数: |
11498 次 |
最近记录: |