今天碰到一个奇怪问题.因为在2台服务器上做文件共享,使服务器A能访问服务器B的共享目录.在IIS上使用虚拟目录实现的话,需要给应用程序池指定一个统一的账号.在调试的时候能够使用,但是一部署到服务器上,部分服务方法无法使用.登录查看服务端日志和系统日志都没有看到人任何错误记录.

PS:服务端IIS日志地址

通过Fiddler查看,服务端返回的是400 Bad Request.

虽然100%确定是账号问题,因为后来使用内置的NetService账号没有问题.

似乎有些卡主了,后来通过Fiddler分析发现,使用json的方法都是成功的.xml方法是失败的,猜想可能是iis没有接受xml的请求.

结果找了很久,发现可能偏了,后来有的xml返回是成功的.

回到iis new account xml和wcf之间,又找了很久.纠结在给iis设置各种权限策略花费了几乎一晚上的时间.回家的路上想了像,应该是某些特定的方法无法返回.到家后测试发现果然如此.

第二天,通过写测试的demo,终于发现了问题所在.原来是使用了序列化xml的方法全部返回失败.问题出在了序列化上.

序列化的方法如下:

public static XmlElement ElementSerialize<T>(T item)
{
XmlElement serializedElement = null;
try
{
MemoryStream memStream = new MemoryStream();
using (XmlTextWriterFull textWriter = new XmlTextWriterFull(memStream,Encoding.Unicode))
{
System.Xml.Serialization.XmlSerializer
serilizer = new System.Xml.Serialization.XmlSerializer(typeof(T));
serilizer.Serialize(textWriter, item);
//serilizer.Serialize(memStream, item);
memStream.Position = ;
XmlDocument xmlDoc = new XmlDocument();
//memStream = textWriter.BaseStream as MemoryStream;
xmlDoc.Load(textWriter.BaseStream);
serializedElement = xmlDoc.DocumentElement;
} }
catch (Exception serializeException)
{
throw serializeException;
}
return serializedElement;
}

序列化抛出的异常,调用的时候没有相应的处理.加上异常后,发现问题所在:

接下来处理就简单了,给TEMP加上相应的权限即可.

这里获得的教训就是,内层方法抛出异常,外层调用一定要有处理,否者很难定位问题所在.碰到问题冷静处理,找到问题所在.

参考:

http://stackoverflow.com/questions/657993/system-invalidoperationexception-unable-to-generate-a-temporary-class-result-1

ASP.NET XmlSerializer权限问题的更多相关文章

  1. ASP.NET通用权限组件思路设计

    开篇 做任何系统都离不开和绕不过权限的控制,尤其是B/S系统工作原理的特殊性使得权限控制起来更为繁琐,所以就在想是否可以利用IIS的工作原理,在IIS处理客户端请求的某个入口或出口通过判断URL来达到 ...

  2. 开篇ASP.NET MVC 权限管理系列

    开篇 [快乐编程系列之ASP.NET MVC 权限管理系列]一.开篇   用了好长一段时间的ASP.NET MVC,感觉MVC真的是很好用,最近一年左右做了两个中小型项目,觉得还是很多地方不是很熟悉的 ...

  3. ASP.NET通用权限系统快速开发框架

    系统在线演示地址: http://120.90.2.126:8051 登录账户:system,密码:system### DEMO下载地址: http://download.csdn.net/detai ...

  4. 要将 ASP.NET 访问权限授予某个文件,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。

    找到该文件所在文件夹,右键属性,安全选项卡,添加-aspnet用户,并设置其权限为完全控制.如果还是不行,就添加一个Everyone用户并赋予完全控制权限windows server 2008中IIS ...

  5. asp.net core权限模块的快速构建

    大部分系统都会有权限模块,别人家系统的权限怎么生成的我不知道,我只知道这样做是可以并且挺好的. 文章中只对asp.net core的部分代码进行说明 呃 记录~,mvc版本自行前往仓库查阅 代码中的一 ...

  6. 实现对ASP.NETMvc及Asp.NetCore的权限控制

    AccessControlHelper Build Status Intro 由于项目需要,需要在 基于 Asp.net mvc 的 Web 项目框架中做权限的控制,于是才有了这个权限控制组件. 项目 ...

  7. Asp.net MVC 权限过滤器实现方法的最佳实践

    在项目开发中,为了安全.方便地判断用户是否有访问当前资源(Action)的权限,我们一般通过全局过滤器来实现. Asp.net MVC 页面中常见的权限判断使用过滤器主要在以下几种情况(根据权限判断的 ...

  8. ASP.NET网站权限设计实现(二)——角色权限绑定

    1.关于使用的几张表的说明  (1)Module:模块表,记录模块名称.编码等模块基本数据.   (2)Permissions:权限表,记录所有模块权限distinct之后的数据.   (3)Modu ...

  9. ASP.NET MVC4 权限验证

    在ASP.NET MVC4 中继承ActionFilterAttribute 类,重写OnActionExecuting方法 /// <summary> /// 权限拦截 /// < ...

随机推荐

  1. 使用vs2010生成SQL Server 随机数据

    前几天做测试数据,偶然发现vs2010中有一个生成随机数据的功能,记录下来,方便以后使用,确实非常的好用灵活快捷. 为了简单扼要的说明,下面我用一个实例来说明如何快捷使用: 在VS2010创建数据库项 ...

  2. 编写Java应用程序。首先,定义描述学生的类——Student,包括学号(int)、 姓名(String)、年龄(int)等属性;二个方法:Student(int stuNo,String name,int age) 用于对对象的初始化,outPut()用于输出学生信息。其次,再定义一个主类—— TestClass,在主类的main方法中创建多个Student类的对象,使用这些对象来测 试Stud

    package zuoye; public class student { int age; String name; int stuNO; void outPut() { System.out.pr ...

  3. dpdk在虚拟机上出错处理

    目录 1. 所用系统与软件版本 2. 虚拟机配置 3. Ubuntu 12.04上的配置 3.1 准备 3.2 通过setup脚本进行配置 3.3 通过命令配置 4. CentOS 7.0上的配置 4 ...

  4. JavaEE7 HTML5利用WebSocket实现即时通讯

    HTML5给Web浏览器带来了全双工TCP连接websocket标准服务器的能力. 换句话说,浏览器能够与服务器建立连接,通过已建立的通信信道来发送和接收数据而不需要由HTTP协议引入额外其他的开销来 ...

  5. 利用增量备份恢复因归档丢失造成的DG gap

    故障现象:data guard归档出现gap,悲剧的是丢失的归档在主库上被rman备份时删除了,丢失的归档大约有20几个,数据库大小约2T,如果重建DG将非常耗时间,因此决定利用增量备份的方式恢复DG ...

  6. nodemanager execute container fail many times

    ttempt_1448915696877_13139_m_000141_0 100.00 FAILED map > map px42pub:8042 logs Wed, 09 Dec 2015 ...

  7. 用PS设计等高线效果的背景图片

    有些简单的单网页,如果利用等高线效果的背景图片,再配合合适的背景色,能达到绚丽的效果.如下图所示: 本文就介绍该等高线效果的背景图片是如何制作的.Follow Me!!!! 1.新建文档,尺寸:100 ...

  8. AC日记——大小写字母互换 openjudge 1.7 14

    14:大小写字母互换 总时间限制:  1000ms 内存限制:  65536kB 描述 把一个字符串中所有出现的大写字母都替换成小写字母,同时把小写字母替换成大写字母. 输入 输入一行:待互换的字符串 ...

  9. jmeter 监控服务器的内存,cpu等内容

    1.需要下载一个jar包,放入到lib /ext文件中  JMeterPlugins-Standard.jar 2.在服务器上安装 perfmon server agent 这里监控内存我们使用的是: ...

  10. java 22 - 13 多线程之解决线程安全问题的实现方式2

    上一章说了,解决线程安全问题的实现方式1是使用同步代码块 同时也知道了,同步代码块的锁对象是任意对象:(Object obj ;  Demo d;)这些都行 那么,现在来说解决线程安全问题的实现方式2 ...