剑三视频编辑器路径<Module>"的类型初始值设定项引发异常

&&&您需要以后才能回答,未注册用户请先。本帖子已过去太久远了,不再提供回复功能。类型初始值设定项引发异常的几种原因总结
对网上的看到的例子以及个人实践的结果进行总结,以备日后拿过来用。也希望能帮助到广大网友。
一、Web.config配置错误。
Web层除了引用BLL和实体Model类之外,还要引用数据访问层DAL
namespace QinMi.DALFactory
&&& public class
DataAccess
private static readonly string path =
ConfigurationManager.AppSettings["WebDAL"];
public static IUser CreateUser()
&&&&&&&&&&&
string classname = path + ".UserService";
&&&&&&&&&&&
return (IUser)Assembly.Load(path).CreateInstance(classname);
通过反射加载QinMiDAL程序集,在程序集中创建类的实例
namespace QinMi.DAL
&&& public class
UserService : IUser
#region SQL
private const string UserSQL = "Select * From RegUsers";
#endregion
public IList BindUser()
&&&&&&&&&&&
IList userlist = new List();
&&&&&&&&&&&
using (SqlDataReader sdr =
SQLHelper.ExecuteReader(SQLHelper.connstr, CommandType.Text,
UserSQL, null))
&&&&&&&&&&&
&&&&&&&&&&&&&&&
while (sdr.Read())
&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&
UserInfo userinfo = new UserInfo();
&&&&&&&&&&&&&&&&&&&
userinfo.UserName = sdr.IsDBNull(2) ? "" :
sdr["UserName"].ToString();
&&&&&&&&&&&&&&&&&&&
userinfo.UserAddress = sdr.IsDBNull(4) ? "" :
sdr["Address"].ToString();
&&&&&&&&&&&&&&&&&&&
userlist.Add(userinfo);
&&&&&&&&&&&&&&&
&&&&&&&&&&&
&&&&&&&&&&&
二.漏引用数据访问层的DAL
我发生这种情况的原因之一就是是项目中漏引用了SQLServerDAL类库,结果导致在后台引用BLL.中的函数时出现这样的错误.
得出一个结论:如果遇上特难查的错,我建议先清掉项目BIN目录下自动生成的所有类库DLL文件,然后再选择行调试,一行一行运行.我是运行到:return
(HuoyunChina.IDAL.IMember)Assembly.Load(path).CreateInstance(className);
然后在即时窗口执行:Assembly.Load(path).CreateInstance(className)才发现错误原因的,如果直接执行行调试运行return
(HuoyunChina.IDAL.IMember)Assembly.Load(path).CreateInstance(className);
就只会出现:类型初始值设定项引发异常错误提示,而不会出现:未能加载文件或程序集“HuoyunChina.SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件的错误提示.
如果能早一点看到:未能加载文件或程序集“HuoyunChina.SQLServerDAL”或它的某一个依赖项。的错误提示,哪么是不是就很容易也很快就能知道错误的地方呢?可见调试有时也需要一定技巧,这是我在本次排错中获得的一点启发."
总结:如果类中存在静态成员,应确保其初始化时不会抛出异常,否则会影响对该类的正常访问。
三.所有的DLL文件必须在bin的文件夹下
按照PetShop的架构,是DALFactory程序集里通过反射创建针对特定数据访问层里的对应类实例,这样BLL调用接口时就知道调用这个对应类实例里的实现方法。
而反射动态加载程序集是通过这种方法
Assembly.Load("程序集").CreateInstance("命名空间.类"),其中的“程序集”读取的是Web层bin文件夹下对应的dll,即反射加载的程序集dll在Web层的bin文件夹必须有.
四.未能正确连接数据库
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。类型初始值设定项引发异常 - 非鱼评影
- 畅享博客
|收藏博客|加入友情链接|给博主留言
看电影,讲电影
类型初始值设定项引发异常
类型初始值设定项引发异常
asp.net经常莫名奇妙的遇到一个奇怪的问题,某些页面(随机的)会出现无法打开的情况,错误显示为某个dll找不到。而且问题越来越严重。每次更新服务器上的DLL文件,进程里面会突然多出N多个csc.exe,狂占CPU,要经过大概2分钟程序才能重新启动起来,然后就会有一些页面出现那个问题。一开始发现重新编译上传可以解决问题,但是后来发现重新上传以后其实这个页面好了,但是另外的某个页面就会再出问题。后来搜索了一下解决方案,找到一个办法,到C:\\Windows\\Microsoft .Net\\下面的缓存目录下把该程序的缓存文件删掉。删这些文件要停掉IIS服务才可以,后来发现上传步骤变为:先停止服务,删除缓存文件,更新dll,启动服务,不但没有了前面那个问题,启动速度也快了很多,整个过程不会多于一分钟。今天再一次上传以后又出现一个新问题,发邮件的部分出错,错误类型就是“类型初始值设定项引发异常。”看来看去应该没什么问题,因为在我的机器上是正常的,Google了一下,发现遇到这个问题的人也挺多的,而且每个人的原因还不一样。折腾了四五遍,把配置文件改了几次,重启了几次服务也没有用。后来突然发现,新的邮件类使用了两个新的dll文件,这两个文件没有上传上去,结果就造成了这两个问题。重新上传这两个文件,重启IIS服务,可以了。<div class="votes" id="Score
下一篇:上一篇:
您还未登录,不能对文章发表评论!请先最近在研究ActiveRecord网上有很多贴子讲怎么用的。但自己照做就是出错。
最终定位在配置文件出错。应该是ActiveRecord有更新的原因。在国外的网站把配置复制了一份替换。问题解决了。我用的是castle.ActiveRecord + mysql&
&configSections&
&section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" /&
&/configSections&
&activerecord isWeb="true"&
&add key="connection.driver_class" value="NHibernate.Driver.MySqlDataDriver" /&
&add key="dialect"
value="NHibernate.Dialect.MySQLDialect" /&
&add key="connection.provider"
value="NHibernate.Connection.DriverConnectionProvider" /&
&add key="connection.connection_string" value="Database=Data Source=User Id=Password=" /&
&add key="proxyfactory.factory_class" value="NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle" /&
&add key="query.factory_class" value="NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory, NHibernate" /&
&/activerecord&
这里还有关于连别的库的配置:
http://docs.castleproject.org/Default.aspx?Page=Configuration%20Reference&NS=Active%20Record&AspxAutoDetectCookieSupport=1
阅读(...) 评论()}

我要回帖

更多关于 剑三视频编辑器官网 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信