ASP.NET 中使用WebServer进行调试时,自定义的Identity出现 SerializationException的解决方法

今天遇到一个奇怪的问题,虽然已经解决了,但是原因仍然不是很清楚。

在新建的一个ASP.NET MVC中使用了自定义的Identity,在使用VS自带的WebServer调试时,发生了类似如下错误:

Type is not resolved for member'XAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Runtime.Serialization.SerializationException: Type is not resolved for member 'XAssembly.MyIdentity,XAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[SerializationException: Type is not resolved for member 'XAssembly.MyIdentity,XAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.]
   Microsoft.VisualStudio.WebHost.Connection.get_RemoteIP() +0
   Microsoft.VisualStudio.WebHost.Request.GetRemoteAddress() +65
   System.Web.HttpRequest.get_UserHostAddress() +18
   System.Web.HttpRequest.get_IsLocal() +13
   System.Web.Configuration.CustomErrorsSection.CustomErrorsEnabled(HttpRequest request) +86
   System.Web.HttpContext.get_IsCustomErrorEnabled() +42
   System.Web.Configuration.UrlAuthFailedErrorFormatter.GetErrorText(HttpContext context) +16
   System.Web.Security.UrlAuthorizationModule.WriteErrorMessage(HttpContext context) +29
   System.Web.Security.UrlAuthorizationModule.OnEnter(Object source, EventArgs eventArgs) +8777783
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +68
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75

同样的代码,在使用IIS或IIS Express进行调试或运行时,就不会出错。

最初尝试根据提示添加Attribute [Serializable]但是错误依旧。

后来将原来Identity的定义由

public class MyIdentity : IIdentity{
//...
}

改为

public class MyIdentity : MarshalByRefObject ,IIdentity{
//...
}

即解决,但是最终发生原因还是没有探明,从异常上看来,似乎是WebServer内部的一个Bug。

References:

http://stackoverflow.com/questions/1277371/serializationexception-on-customidentity-when-user-is-denied-in-asp-net

时间: 2025-01-31 01:55:29

ASP.NET 中使用WebServer进行调试时,自定义的Identity出现 SerializationException的解决方法的相关文章

ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法_jquery

如图: 上图的右边框不见了,使用 web开发工具调试,发现是内容器过大.于是想到了是jquery-easyui 对界面的"渲染"不正确引起. 起初以为是因为加了 处理重复的代码引起,但是去掉后总是依旧: 进而考虑到界面"渲染"的前后关系,于是尝试对代码片段进行延迟执行,问题解决.原问题脚本: 复制代码 代码如下: <script type="text/javascript"> if (window.__yltlClientScriptRegistKey == undefin

js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法

  这篇文章主要介绍了js插件设置innerHTML时在IE8下提示"未知运行时错误"解决方法,较为详细的分析了错误的原因及对应的解决方法,需要的朋友可以参考下 本文实例讲述了js插件设置innerHTML时在IE8下提示"未知运行时错误"解决方法.分享给大家供大家参考.具体分析如下: 问题描述: 网站中使用了一个js插件,设置innerHTML时,在IE8下报错"未知运行时错误": ? 1 2 3 4 5 <div id="di

word文档打开出现&quot;上次打开文档时严重错误,是否继续打开&quot;的解决方法

  word文档打开出现"上次打开文档时严重错误,是否继续打开"的解决方法 方法/步骤 [打开word文档] 有时候我们打开word文档,结果显示如下图情况,如果是重要的文件,就非常头疼,我们又不能扔掉,这个时候我们就得找出原因,对症下药. [继续点击] 看看显示帮助里有什么线索,包括是.否挨个试一遍,看看什么情况,然后按着它的提示操作下去. [排除其它原因] 你打开其它word文档,看其它可以打开不,如果其它打不开,那就说明模板已损坏,或者是中木马病毒了,这个可以参考作者其它的相关百

win7系统连接VPN失败时提示错误代码721的故障分析及解决方法

  故障原因分析: 1.721错误是由于您的电脑处在内网造成的,由于局域网中存在多台电脑,服务器就无法正确判断具体是哪台电脑,故连接时会提示错误721. 2.Win2003 路由和远程访问搭建vpn ,有些地方拨号提示错误721,将VPN的策略由pptp改为L2TP后解决. 3.路由器禁止了PPTP连接. 解决办法: 1.点击"开始--运行",键入"regedit"命令后点击"确定"; 2.在注册表编辑器中,找到以下注册项HKEY_LOCAL_M

C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法_C#教程

本文实例讲述了C# WinForm控件对透明图片重叠时出现图片不透明的简单解决方法.分享给大家供大家参考,具体如下: 在Winform中如果将一个透明图片放在窗体上能正常显示透明,但是如果将该图片放在另一个控件上会导致不能显示透明效果. 解决这种情况,可以采取在控件上使用GDI+绘画出透明图片. 这里我们就以一个pictureBox2控件上面重叠一张png透明图片为例: 我们只需要给pictureBox2控件添加Paint事件,然后对png透明图片进行绘制即可,代码如下: private voi

jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法_JSP编程

在自己练手时遇到了EL表达式被当成字符串处理而没有正确解析的现象.当时工程中使用的Javaee5, web.xml <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/

Visual Studio 2015中创建C#的Android项目提示&quot;Value cannot be null&quot;的解决方法

原文:Visual Studio 2015中创建C#的Android项目提示"Value cannot be null"的解决方法 选择C# > Android创建一个Blank App时提示如下错误: Value cannot be null. Parameter name: path1 由于之前本机已安装过Android SDK,在安装Visual Studio 2015时跳过了,并没有为Xamarin指定对应路径导致.Visual Studio顶部菜单:Tools >

win10系统使用APMserv时提示80端口被占用的解决方法

具体如下: 1.右下角有个向上的箭头,点击右键选择任务管理器: 2.在任务管理器中,选择后面的服务: 3.选择服务后,左下角区域有个打开服务的按钮,点击打开详细的系统服务: 4.打开后一般显示的是扩展的服务,为了查找方便,我们选择标准的: 5.打开标准服务后,我们拉到组后,找到World Wide Web Publishing Service,这个选项: 6.双击将里面的数字,改为0即可. 以上就是小编为大家带来的关于win10系统使用APMserv时提示80端口被占用的解决方法了:通过上面几个

PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法

 这篇文章主要介绍了PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法,造成这个问题的原因是PHP上传大小限制为2MB,修改PHP.ini配置即可解决这问题,需要的朋友可以参考下     网站搬家的时候碰到的这个问题,因为数据一直是使用PhpMyAdmin工具来进行备份和恢复的,但是随着网站的数据越来越多,所以数据库也是越来越大,压缩后都还有4M的数据,而在PhpMyAdmin里将数据导入时就出错误提示了. 上图为PhpMyAdmin里的提示"没有接收到要导入的数据.可能是文件名没有