RSS 2.0 Feed
2005-07 Entries
摘要:我们在WEB站点使用企业库的时候,有时候会有如下的异常产生: 安全性异常 说明: 应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请与系统管理员联系,或在配置文件中更改该应用程序的信任级别。 异常详细信息: System.Security.SecurityException: 不允许所请求的注册表访问权。 堆栈跟踪: [SecurityException: 不允许所请求的注册表访问权。]   Microsoft.Win32.RegistryKey.OpenSubKey(String name, Boolean writable) +473   System.Diagnostics.EventLog.CreateEventSource(String source, String logName, String machineName, Boolean useMutex) +443   System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category, Byte[] rawData) +347   System.Diagnostics.EventLog.WriteEntry(String message, EventLogEntryType type, Int32 eventID, Int16 category) +21........   Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.PerformanceCounterInstances..ctor(String categoryName, String counterName, Boolean createNewInstance)Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.InstrumentedEvent.AddPerformanceCounter(String category, String[] counterNames, Boolean createNewInstance)   Microsoft.Practices.EnterpriseLibrary.Common.Instrumentation.InstrumentedEvent.Initialize(String counterCategory, String[] counterNames, Boolean createNewInstance, String eventLogSource, EventLogIdentifier[] eventIds)        造成这个的原因是企业库的公共项目中:Instrumentation 目录下有操作日志、性能的代码。而这些代码需要一定的权限才可以执行。 解决方案:1、去掉这些代码。(这会是一个痛苦的经历,代码割舍不清呀)2、给IUSR 帐户访问注册表的权限(安全问题呀!)我们当然不推荐这2个做法: 我们推荐的做法:重新编译 Microsoft.Practices.EnterpriseLibrary.Common 项目,编译时把其中 Conditional Compilation Constants 设置中除 DEBUG;TRACE 外的其他项都去掉。 具体步骤请参看:http://dotnetjunkies.com/WebLog/sskokku/archive/2005/03/25/61376.aspx 附图:  ...[阅读全文]

posted @ | Feedback (12) | Filed Under [ .net 编程心得 技术随笔 ]

摘要:有时候,我们在调试ASP.net程序的时候,会很痛苦的碰到。某某组件访问被拒绝。这时候重起IIS,电脑注销都不起作用。这时候的错误信息一般类似如下的方式:“/”应用程序中的服务器错误。 -------------------------------------------------------------------------------- 配置错误 说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。 分析器错误信息: 访问被拒绝:“CSDN.Authentication”。 源错误: 行 196:    <add assembly="System.EnterpriseServices, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>行 197:    <add assembly="System.Web.Mobile, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>行 198:    <add assembly="*"/>行 199:   </assemblies>行 200:  </compilation>源文件: c:\windows\microsoft.net\framework\v1.1.4322\Config\machine.config    行: 198 程序集加载跟踪: 下列信息有助于确定程序集“CSDN.Authentication”无法加载的原因。 === Pre-bind state information ===LOG: DisplayName = CSDN.Authentication (Partial)LOG: Appbase = file:///F:/MyDevelop/AD/Code/ADManageWebLOG: Initial PrivatePath = binCalling assembly : (Unknown).===LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).LOG: Post-policy reference: CSDN.AuthenticationLOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/3151f96f/581ce000/CSDN.Authentication.DLL.LOG: Attempting download of new URL file:///C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files/root/3151f96f/581ce000/CSDN.Authentication/CSDN.Authentication.DLL.LOG: Attempting download of new URL file:///F:/MyDevelop/AD/Code/ADManageWeb/bin/CSDN.Authentication.DLL.LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly......[阅读全文]

posted @ | Feedback (38) | Filed Under [ .net 编程心得 ]

摘要:首先我们来看一段代码:using System; class Class1 ...{ static void Main(string[] args)...{ DeriveClass d = new DeriveClass(); Do(ref d); } public static void Do(ref BaseClass b)...{} } class BaseClass ...{} class DeriveClass : BaseClass ...{} 这段代码我们在编译的时候,会产生如下异常: F:\MyDevelop\Tests\ConsoleApplication2\Class1.cs(8): 与“Class1.Do(ref BaseClass)”最匹配的重载方法 具有一些无效参数F:\MyDevelop\Tests\ConsoleApplication2\Class1.cs(8): 参数“1” : 无法从“ref DeriveClass”转换为“ref BaseClass” 我们先来看解决方法,先不分析原因:几种解决方法如下: 解决方法一,在传递前,先把派生类转换为基类using System; class Class1...{ static void Main(string[] args)...{ DeriveClass d = new DeriveClass(); BaseClass b......[阅读全文]

posted @ | Feedback (12) | Filed Under [ .net 编程心得 ]