1. 未能加载文件或程序集“AccessTask”或它的某一个依赖项。系统找不到指定的文件  一般是你没有引用它,或者缺少这个..再找找看  2. ConfigurationSettings.AppSettings提示说已过时.  string assemblyName   = ConfigurationManager.ConnectionStrings["AssemblyName"].ConnectionString; 
  这样就行了,.

解决方案 »

  1.   

    使用Assembly.LoadFrom代替Load。
    Load需要指定依赖关系,默认采用当前程序的,可能会使加载时找不到依赖项,比如Load("B.dll"),而B.dll依赖于一个不在当前程序搜索目录的A.dll(常见场景是B引用了A),这时就会有lz的问题。
    LoadFrom会自动搜索这些信息。
      

  2.   

    谢谢zhangjjhua:
    过时的问题已经搞定了;lalac:
    已经改成了return (ILWordTask)Assembly.LoadFrom(assemblyName).CreateInstance(constructor, false);
    又出现了这个错误“未能加载文件或程序集“file:///E:\web\asp.net\TraceLWord\AccessTask”或它的某一个依赖项。拒绝访问。”
    是不是其他的什么地方还要修改?
      

  3.   

    不太明白,具体在哪里改,能详细说说吗?
    我把代码贴出来:
    DbTaskDriver.cs
    using System;
    using System.Configuration;
    using System.Collections.Generic;
    using System.Reflection;  //使用.net反射
    using System.Text;using DbTask;  //引用抽象的数据访问层namespace DALFactory
    {
        public class DbTaskDriver
        {
            public ILWordTask DriveLWordTask()
            {
                string assemblyName = ConfigurationManager.AppSettings["AssemblyName"];
                string constructor = ConfigurationManager.AppSettings["Constructor"];
                return (ILWordTask)Assembly.Load(assemblyName).CreateInstance(constructor, false);
            }
        }
    }Web.Config
    ...
    <appSettings>
        <add key="AssemblyName" value="AccessTask"/>
        <add key="Constructor" value="AccessTask.LWordTask"/>
      </appSettings>
    ...ILWordTask.cs
    using System;
    using System.Collections.Generic;
    using System.Text;using Classes;  //引用实体规范层namespace DbTask
    {
        public interface ILWordTask
        {
            LWord[] ListLWord();        void PostLWord(LWord newLWord);
        }
    }
      

  4.   

    对了,你的AccessTask程序集存在吗?没有的话肯定就可以看到FileNotFoundException,此时你需要把AccessTask程序集copy到bin目录。