今天碰到一个奇怪问题.因为在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. .NET/ASP.NET 4.5 Bundle组件(捆绑、缩小静态文件)

    阅读目录: 1.开篇介绍 2.System.Web.Optimization 组件 3.System.Web.Optimization 组件基本原理 4.扩展自定义类型静态文件 1]开篇介绍 这篇文章 ...

  2. 0018 Java学习笔记-面向对象-类的基本要素

    类与对象 大街上一个个的人,就是一个个对象 类是对一群对象的抽象,比如人都有性别.年龄.姓名,都会吃饭.睡觉等.姓名性别可以抽象为变量,吃饭睡觉可以抽象为方法,像下面一样定义个类来形容人 public ...

  3. SQL Server调优系列进阶篇(查询优化器的运行方式)

    前言 前面我们的几篇文章介绍了一系列关于运算符的基础介绍,以及各个运算符的优化方式和技巧.其中涵盖:查看执行计划的方式.几种数据集常用的连接方式.联合运算符方式.并行运算符等一系列的我们常见的运算符. ...

  4. cocos2d之json使用实例

    前端使用: json管理器中函数解析: 对宠物技能map的定义: 宠物技能表单--数据的基础定义:

  5. 在Eclipse里查看Java字节码

    要理解 Java 字节码,比较推荐的方法是自己尝试编写源码对照字节码学习.其中阅读 Java 字节码的工具必不可少.虽然javap可以以可读的形式展示出.class 文件中字节码,但每次改动源码都需调 ...

  6. 基于vitamio的网络电视直播源码

    这个项目是基于vitamio的网络电视直播源码,也是一个使用了vitamio的基于安卓的网络直播项目源码,可能现在网上已经有很多类似这样的视频播放应用了,不过这个还是相对来说比较完整的,希望这个案例能 ...

  7. 大话设计模式C++版——简单工厂模式

    简单工厂模式应该是所有设计模式中最简单,也最基础的一种模式,以下是一个简单的采用工厂模式写一个加减法的计算器. 1.抽象接口类——依赖倒转原则(高层和底层都要依赖于抽象,针对接口编程) class I ...

  8. 初步了解Entity Framework

    来源:http://www.cnblogs.com/Wayou/archive/2012/09/20/EF_CodeFirst.html Entity Framework的全称是ADO.NET Ent ...

  9. openjudge8469特殊密码锁[贪心]

    描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态. 然而让人头疼的是,当你按一个按钮时,跟它相邻的两个按钮状态也会反转.当然,如果你 ...

  10. php一句话后门过狗姿势万千之传输层加工(1)

    写在前面:过狗相关的资料网上也是有很多,所以在我接下来的文章中,可能观点或者举例可能会与网上部分雷同,或者表述不够全面.但是我只能说,我所传达给大家的信息,是我目前所掌握或者了解的,不能保证所有人都会 ...