代码之家  ›  专栏  ›  技术社区  ›  ChrisHDog

升级到.NET 4.0后无法加载文件或程序集“AjaxControlToolkit”

  •  15
  • ChrisHDog  · 技术社区  · 16 年前

    我有一个Web应用程序正试图升级到.NET 4.0。

    我获取了该应用程序,并通过Visual Studio 2010 Beta 2打开它,并为该应用程序选择了升级路径。应用程序使用AjaxControlToolkit。现在,当我尝试访问一个页面时升级已经完成,我收到错误消息:“无法加载文件或程序集”“AjaxControlToolkit”或其依赖项之一。拒绝访问。“

    我试过了:

    • 重新启动我的机器
    • 清洁溶液
    • 正在删除临时ASP.NET文件中的所有文件
    • 在bin目录(临时的ASP.NET文件目录)上释放权限(添加了具有完全控制权的所有人)
    • 正在删除和读取对AjaxControlToolkit dll的引用

    AjackControlToolkit的相关web.config条目为:

    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
      <controls>
        <add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>
      </controls>
    </pages>
    

    关于这里发生了什么/我如何解决这个问题有什么想法吗?

    11 回复  |  直到 8 年前
        1
  •  15
  •   Jeremy    16 年前

    我有一个类似的问题,但可以通过为我的模拟身份授予“临时ASP.NET文件”文件夹的完全权限来解决。

        2
  •  6
  •   Peter Bernier    8 年前

    我知道已经有一个被接受的答案,但是对于任何其他通过搜索错误代码进入此页面的人……

    检查您试图模拟的用户的权限。

    在我的情况下,我只是在我的开发机器上得到错误,而不是在我们的登台或部署服务器上。(有一段时间,我通过在我的开发环境中从配置中删除“Identity”节点并在后期构建中添加该行来绕过这个问题,所以除了我之外,其他任何人都没有问题。)

    在我的环境中,我们有一个特定的用户,我们的所有Web应用程序在运行时都会模拟该用户。我已经创建了用户帐户,但没有明确设置其帐户权限。当我将用户添加为开发人员计算机上的管理员时,这个问题就完全消失了。(我知道这并不理想,但它“对我有效”,而且伤害很小,因为用户帐户无论如何都被锁定在我们的“真实”服务器上。)

        3
  •  4
  •   shookdiesel    16 年前

    我认为关于c:\windows\microsoft.net\framework64\v4.0.21006\temporary asp.net files[projectname]中临时文件的帖子是正确的。

    我通过编辑权限来解决这个问题,以确保ASP模拟用户(在IIS的安全部分中,作为允许匿名访问时应用程序应使用的匿名用户)对目录具有适当的安全性。

    解决了这个问题…拒绝访问通常指向权限问题。

        4
  •  3
  •   Mel Korman    15 年前

    当我在新的WindowsServer2008计算机上重新安装ASP.NET应用程序时,收到了此错误消息(尽管是另一个dll文件)。我找了几个小时的解决办法,尝试了所有的方法,但都没有用。直到我停用了McAfee Antivirus。当我这样做的时候,一切都很有魅力。

        5
  •  2
  •   jinsungy    15 年前

    我试图授予我的冒充用户对临时ASP.NET文件文件夹的完全权限,但这不起作用。我记得以前我犯这个错误的时候,它起了作用。

    我知道问题海报尝试了这个方法,但是当我在Visual Studio中移除/添加Ajaxtoolkit时,它对我很有用。我建议先试试他所做的一切。我希望这能帮助别人。

        6
  •  2
  •   undone    13 年前

    您可以尝试以下操作: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\ . 只需清理这个文件夹中的所有文件夹和文件,然后编译您的应用程序。快乐编码!

        7
  •  1
  •   Brian Mains    16 年前

    奇数误差。web.config文件中是否有任何指向带有公钥令牌或其他程序集规范的AjaxControlToolkit的内容?这种情况发生在我身上,一个值发生了变化,或者我从GAC中的引用更改为本地引用…

    Hth.

        8
  •  1
  •   ChrisHDog    16 年前

    不完全确定为什么会这样做,但在适当的临时ASP.NET文件目录(位于:c:\windows\microsoft.net\framework64\v4.0.21006\temporary ASP.NET files[projectname])中,我手动复制了ajaxcontroltoolkit.dll。

    随后,我收到了丢失的其他DLL,但在手动将它们复制到此位置时,我也能够解决这些问题。似乎不是最好的答案,但最终对我有用。

        9
  •  1
  •   AshishGarg    11 年前

    我也面临同样的问题。经过大量的研究,我发现我在配置文件中使用了模拟。我必须将模拟ID更改为服务器本地的另一个用户,它立即解决了问题。

        10
  •  1
  •   Protector one reece    10 年前

    检查DLL的属性。如果它指出“此文件来自另一台计算机”,请单击复选框并单击“应用”,以解除Windows设置的限制。

        11
  •  0
  •   JosephDoggie    8 年前

    请记住,还可以使用上下文菜单[右键单击]打开“Visual Studio”和“以管理员身份运行”。

    推荐文章