异常发生的时间:2005-6-30 8:53:52
异常信息:由于安全限制,无法访问类型 Torch.Office.HumanResource.Person。
 自定义异常信息:界面层处理异常。 
异常源:mscorlibServer stack trace: 
   at System.Runtime.Serialization.FormatterServices.GetSafeUninitializedObject(Type type)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObject(ParseRecord pr)
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Parse(ParseRecord pr)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryObjectWithMapTyped record)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadObjectWithMapTyped(BinaryHeaderEnum binaryHeaderEnum)
   at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, IMethodCallMessage methodCallMessage)
   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, IMethodCallMessage methodCallMessage)
   at System.Runtime.Remoting.Channels.CoreChannel.DeserializeBinaryRequestMessage(String objectUri, Stream inputStream, Boolean bStrictBinding, TypeFilterLevel securityLevel)
   at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage(IServerChannelSinkStack sinkStack, IMessage requestMsg, ITransportHeaders requestHeaders, Stream requestStream, IMessage& responseMsg, ITransportHeaders& responseHeaders, Stream& responseStream)Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at Torch.Office.HumanResource.IHumanResPublisher.SavePersonInfor(Person pInfo)
   at HumanResource.FrameSubPage.PersonDetail_edit.SetbackValues()
   at HumanResource.FrameSubPage.PersonDetail_edit.Button1_Click(Object sender, EventArgs e)
   at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   at System.Web.UI.Page.ProcessRequestMain()
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at System.Web.CallHandlerExecutionStep.System.Web.HttpApplication+IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
这是ASP.NET应用程序利用Remoting调用一个强名称签名的程序集中的一个强类型数据集时发生的安全性异常。
若同样的程序集不加强名称签名的话则可以顺利通过Remoting传送。请问这是什么原因导致的问题,应如何解决?

解决方案 »

  1.   

    不是非托管代码,全部是用C#编写的托管程序,而且程序集只包含一个强类型数据集。
    不管怎么设置Framework的代码执行权限都无济于事。怀疑是Windows 2003的安全设置问题。
      

  2.   

    目前,从查阅的资料和最近几次尝试性的修改设置来看,这个异常可能不是由NetFramework本身的安全配置引起的。可能是由于操作系统的安全问题导致。本人使用的开发环境为: Windows 2003 Enterprise edition + Visual Studio 2003 + IIS 6.0本人没有在Windows 2000上进行测试,不过本人猜测可能也存在同样的问题,因为Win 2003和Win 2000的内核设计和基本设置是相似的。