Vb.net 我如何解决这个问题;无法加载文件或程序集';ADODB&x27;或者它的一个依赖项。“访问被拒绝”;错误?

Vb.net 我如何解决这个问题;无法加载文件或程序集';ADODB&x27;或者它的一个依赖项。“访问被拒绝”;错误?,vb.net,iis,virtualization,adodb,Vb.net,Iis,Virtualization,Adodb,我发现,“解决方案”无法加载文件或程序集“ADODB”或其依赖项之一。访问被拒绝“”,并发现应该有解决方案,但这对我没有影响-我仍然得到相同的错误。我不仅在该链接中提到的文件夹(C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET文件)中,而且在ADODB.dll所在的虚拟目录(C:\PlatypusCode\platypi\Bin)中授予了用户完全访问权限 我找错树了吗?我还授予了对另一个尚未拥有该帐户的完全访问权限,但

我发现,“解决方案”无法加载文件或程序集“ADODB”或其依赖项之一。访问被拒绝“”,并发现应该有解决方案,但这对我没有影响-我仍然得到相同的错误。我不仅在该链接中提到的文件夹(C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET文件)中,而且在ADODB.dll所在的虚拟目录(C:\PlatypusCode\platypi\Bin)中授予了用户完全访问权限

我找错树了吗?我还授予了对另一个尚未拥有该帐户的完全访问权限,但也没有区别。现在,ADODB.dll的“安全”选项卡上的每个人都被授予了完全访问权限,即:

Authenticated Users
SYSTEM
Administrators (...)
Users (...)
另外,ADODB.dll是版本2.8,这是预期的版本,并且假定是不可加载的

错误页面有以下警告:

警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1”,但尝试这样做时不会显示此类可用设置:

这篇文章的底部附有完整的err页面,供超级好奇的读者阅读

更新 这可能是问题所在吗?在我的项目中名为“DAL05.dll.refresh”的文件中,它包含以下行(仅限):

我的机器上没有“customerreportingnet”

此项目的虚拟目录是C:\CSPortalCode\csportal

这是否意味着我需要将“DAL05.dll.refresh”中的那一行更改为:

?

不…试着那样做对结果没有影响

更新2 下面是我的解决方案和项目:

突出显示项目后,以下是属性:

因此,如果我理解正确,“完整路径”是IIS虚拟目录,它(C:\CSPortalCode\csportal)确实是硬盘上存在解决方案代码的位置:

…以及它在IIS中的显示方式:

ADODB.dll位于虚拟文件夹中,其版本与预期版本相同:

那么,为什么在运行站点时找不到ADODB.dll呢

可能的“问题”:当我2次单击解决方案资源管理器中“ADODB.dll”左侧的“book”图标时,它表明.dll实际上是版本1(不是2.8.0.0):

然后,err msg会再次显示“…或其依赖项之一…”“我如何知道依赖项是什么,并跟踪未找到的依赖项(如果这是问题的话)

更新3 这里有一件奇怪的事情:我从C:\CSPortalCode\csportal\Bin中删除了ADODB.dll,尝试再次运行该项目(F5,选择运行上次成功的构建),它不会抱怨没有找到丢失的dll;相反,它抱怨没有找到下一个参考

那么是什么导致了这一现象呢?为什么删除引用会导致不再寻找它

更新4 除了路径,我看不到DLL的任何属性,所以我不知道如何按照Dustin的建议设置“嵌入互操作类型”和“复制本地”。这是我在解决方案资源管理器中选择的DLL中看到的:

无论我是作为项目(从硬盘上的.sln文件)还是网站(从IIS站点,我必须在管理员模式下启动VS)打开DLL,这都无关紧要—在这两种情况下,DLL都显示在只有一个属性(“完整路径”)的“Bin”文件夹中,而不是作为具有多个属性的引用。尝试运行它也有完全相同的结果;因此,如果将其作为项目打开(从一个位置打开.sln文件)或作为网站打开(从所有源文件(除了.sln、.user和两个.suo文件)所在的IIS对话框/虚拟目录打开),则在外观或行为上没有差异

更新5 我之前注意到,如果我从项目中删除ADODB.dll,运行时err msg就是“下一个dll”—然后它说它无法加载该dll,似乎不再关心ADODB.dll

因此,作为一个实验,我将虚拟目录bin文件夹中的所有.dll重命名为*.dllHide(“ADODB.dllHide”,等等)

但结果是出现运行时错误,“无法加载文件或程序集'ADODB.dllHide'或其依赖项之一。”

那么为什么它甚至在寻找一个扩展名为“.dllHide”的文件呢?它只是尝试加载bin文件夹中的所有内容吗?我在项目告诉自己在哪里可以找到ADODB.dll的任何地方都看不到路径信息,所以我不知道该怎么想

更新6 因此,我从bin文件夹中删除了所有的.dll并重试。现在我得到了以下信息:

Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 
Parser Error Message: Could not load file or assembly 'System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Source Error: 
Line 64:     <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
Line 65:     <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
Line 66:     <add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Line 67:     <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Line 68:     <add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
Source File: C:\CSPortalCode\csportal\web.config    Line: 66
所以我觉得现在可能会有很多这样的问题;但一旦我将适当的.dll添加回bin文件夹(当我发现哪个是“SQLServer”的时候),这会不会让我回到原始问题,出现“无法加载'bla'”错误

错误页全文 “/CPSPortal”应用程序中出现服务器错误。 无法加载文件或程序集“ADODB”或其依赖项之一。访问被拒绝。 描述:在执行当前web请求期间发生未经处理的异常。请查看堆栈跟踪,以了解有关错误及其在代码中起源的详细信息。 异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“ADODB”或其依赖项之一。访问被拒绝。 源错误: 在执行当前web请求期间生成了未经处理的异常。有关异常的起源和位置的信息可以使用下面的异常堆栈跟踪来标识。 程序集加载跟踪:以下信息有助于确定无法加载程序集“ADODB”的原因。 警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1。 不
..\..\Inetpub\wwwroot\CSPortalCode\csportal\bin\DAL05.dll
Configuration Error
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately. 
Parser Error Message: Could not load file or assembly 'System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
Source Error: 
Line 64:     <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
Line 65:     <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
Line 66:     <add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
Line 67:     <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
Line 68:     <add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
Source File: C:\CSPortalCode\csportal\web.config    Line: 66
        <compilation debug="true" strict="false" explicit="true">
   <assemblies>
    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
    <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    <add assembly="Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
    <add assembly="Microsoft.ReportViewer.Common, Version=9.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
   </assemblies>
Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. 

Compiler Error Message: BC30002: Type 'SQLServer' is not defined.

Source Error:

Line 6:  Public Class CMSDAO
Line 7:      Public Function GetAccountContracts(ByVal memberNo As String, ByVal docYear As String) As DataSet
Line 8:          Dim sqlDAL As New SQLServer()
Line 9:          Dim dset As DataSet
Line 10:         Dim dataConn As New SqlClient.SqlConnection(System.Configuration.ConfigurationManager.AppSettings("ConnectionString"))

Source File: C:\CSPortalCode\csportal\App_Code\CMSDAO.vb    Line: 8