仿照PetShop4.0 框架做一个程序,在工厂类创建对象时出错
配置文件的WebDAL
<appSettings>
<add key="WebDAL" value="TeachOnline.SQLServerDAL"/>
</appSettings>private static readonly string path = ConfigurationManager.AppSettings["WebDAL"];
public static TeachOnline.IDAL.ISpeciality CreateSpeciality()
{
    string className = path + ".Speciality";
    return (TeachOnline.IDAL.ISpeciality)Assembly.Load(path).CreateInstance(className);
}我觉得没能找到相应的程序集
日志: 试图下载新的 URL file:///E:/TeachOnline/TeachOnline/bin/TeachOnline.SQLServerDAL.DLL。
Bin下在多了一个TeachOnline.的前缀,所以找不到,但把TeachOnline.去掉了,又无法创建
与PetShop几乎一样的写法为什么它能加载而我不能呢?反来复去检查了两天,还是得像各为大侠请教。未能加载文件或程序集“TeachOnline.SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.IO.FileNotFoundException: 未能加载文件或程序集“TeachOnline.SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件。源错误: 行 18:         {
行 19:             string className = path + ".Speciality";
行 20:             Assembly asm = Assembly.Load(path);
行 21:             return (TeachOnline.IDAL.ISpeciality)Assembly.Load(path).CreateInstance(className);
行 22:         }源文件: E:\TeachOnline\DALFactory\DataAccess.cs    行: 20 程序集加载跟踪: 下列信息有助于确定程序集“TeachOnline.SQLServerDAL”无法加载的原因。=== 预绑定状态信息 ===
日志: 用户 = chenkelei-PC\chenkelei
日志: DisplayName = TeachOnline.SQLServerDAL
 (Partial)
日志: Appbase = file:///E:/TeachOnline/TeachOnline/
日志: 初始 PrivatePath = E:\TeachOnline\TeachOnline\bin
调用程序集: DALFactory, Version=1.0.0.0, Culture=neutral, PublicKeyToken=07c4f467a6048e3a。
===
日志: 此绑定从 default 加载上下文开始。
日志: 正在使用应用程序配置文件: E:\TeachOnline\TeachOnline\web.config
日志: 使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config 的计算机配置文件。
日志: 此时没有为引用应用策略(私有、自定义、分部或基于位置的程序集绑定)。
日志: 试图下载新的 URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/00f124f6/69d49aa4/TeachOnline.SQLServerDAL.DLL。
日志: 试图下载新的 URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/00f124f6/69d49aa4/TeachOnline.SQLServerDAL/TeachOnline.SQLServerDAL.DLL。
日志: 试图下载新的 URL file:///E:/TeachOnline/TeachOnline/bin/TeachOnline.SQLServerDAL.DLL。
日志: 试图下载新的 URL file:///E:/TeachOnline/TeachOnline/bin/TeachOnline.SQLServerDAL/TeachOnline.SQLServerDAL.DLL。
日志: 试图下载新的 URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/00f124f6/69d49aa4/TeachOnline.SQLServerDAL.EXE。
日志: 试图下载新的 URL file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files/root/00f124f6/69d49aa4/TeachOnline.SQLServerDAL/TeachOnline.SQLServerDAL.EXE。
日志: 试图下载新的 URL file:///E:/TeachOnline/TeachOnline/bin/TeachOnline.SQLServerDAL.EXE。
日志: 试图下载新的 URL file:///E:/TeachOnline/TeachOnline/bin/TeachOnline.SQLServerDAL/TeachOnline.SQLServerDAL.EXE。堆栈跟踪: [FileNotFoundException: 未能加载文件或程序集“TeachOnline.SQLServerDAL”或它的某一个依赖项。系统找不到指定的文件。]
   System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +0
   System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection) +54
   System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +211
   System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +141
   System.Reflection.Assembly.Load(String assemblyString) +25
   TeachOnline.DALFactory.DataAccess.CreateSpeciality() in E:\TeachOnline\DALFactory\DataAccess.cs:20
   TeachOnline.BLL.Speciality..cctor() in E:\TeachOnline\BLL\Speciality.cs:16[TypeInitializationException: “TeachOnline.BLL.Speciality”的类型初始值设定项引发异常。]
   TeachOnline.BLL.Speciality..ctor() in E:\TeachOnline\BLL\Speciality.cs:13
   TeachOnline.Admins.CreateSpeciality.btnSubmit_Click(Object sender, EventArgs e) in E:\TeachOnline\TeachOnline\Admins\CreateSpeciality.aspx.cs:31
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746

解决方案 »

  1.   

    ·双线主机 100M/35元/年,免费送数据库(自选MY/MSSQL)
    ·支持ASP+ASP.NET+PHP+HTML
    ·详情请访问:http://www.515dns.com
    ·QQ:287895593
      

  2.   

    将错误提示中的文件的dll文件复制到网站下的bin目录中 
    或将AssemblyName修改为需要的名称
      

  3.   

    如果建立项目是使用的是 web应用程序,而不是website的话
    你需要在web层引用所有的其他项目的dll,web应用程序是不会自动引用的
      

  4.   

    把TeachOnline.SQLServerDAL类库添加引用website中去,出现这个错误估计是你没有在website中引用这个类库