33

我正在使用 vs2010 和水晶报表版本 13.0.2000.0 ,系统 64 位水晶报表运行时 64 位。我的应用程序在开发机器上运行良好,但是当我在服务器上部署时出现此错误

无法加载文件或程序集 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' 或其依赖项之一。该系统找不到指定的文件。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.IO.FileNotFoundException:无法加载文件或程序集“log4net,版本=1.2.10.0,文化=中性,PublicKeyToken=692fbea5521e1304”或其依赖项之一。该系统找不到指定的文件。

错误来源:

CR:CrystalReportViewer ID="CrystalRportViewrRegistration" runat="server" AutoDataBind="true"

我检查了 GAC 程序集,我没有找到 log4net.dll,甚至在我的系统中,我也搜索了所有内容并尝试了各种方法,例如更改运行时版本和从 apache 上传 lo4net dll,但没有运气。

4

10 回答 10

29

要将 IIS 配置为运行 32 位应用程序,您必须执行以下步骤:

Open IIS
Go to current server – > Application Pools
Select the application pool your 32-bit application will run under
Click Advanced setting or Application Pool Default
Set Enable 32-bit Applications to True

如果您无法使用此选项,请按照以下步骤操作:

Go to %windir%\system32\inetsrv\
Execute the appcmd.exe tool:
于 2014-02-14T13:20:41.463 回答
18

如果您在尝试部署它的机器上没有看到 log4net.dll %systemdrive%\windows\assembly\,可能是您没有成功安装 Crystal Reports for .Net Framework 4.0 的可再发行组件

从http://scn.sap.com/docs/DOC-7824安装(或重新安装)最新的服务包(SAP Crystal Reports,Microsoft Visual Studio 更新和运行时下载的开发人员版本)

该运行时发行版应该将 log4net 以及一堆 CrystalDecisions dll 添加到 GAC

于 2013-07-22T20:34:24.133 回答
9

确保安装了正确平台(32 位或 64 位)的版本。在 64 位机器上安装 32 位运行时时,我遇到了同样的问题。安装正确的一个,即 64 位,解决了这个问题。

于 2013-08-07T10:30:07.323 回答
2

我遇到了同样的问题(VS 2015),但我的应用程序在 32 位应用程序池下运行。所以即使机器是64位的。我安装了 32 位安装,它可以工作。

于 2016-04-06T07:51:26.723 回答
1

所以一般dll必须放在两个地方:

  1. GAC(可以有 32 和 64 版本的 dll)
  2. 您的项目 bin 文件夹

因此,您只需要添加对 log4net.dll 的引用。(在您的情况下是 32 位,PublicKeyToken=692fbea5521e1304)

你可以通过

于 2019-01-05T00:49:46.530 回答
1

对于这个特定错误,我安装了 Crystal Report 20 版,它解决了我的问题: https ://www.tektutorialshub.com/crystal-reports/crystal-reports-download-for-visual-studio/#Service-Pack-16

您也可以使用以下链接单独下载文件 https://www.nuget.org/api/v2/package/log4net/1.2.10 将文件重命名为 .zip 并解压缩。

于 2019-06-12T10:06:51.740 回答
0

要将 IIS 配置为运行 32 位应用程序,您必须执行以下步骤:

打开 IIS 转到当前服务器 -> 应用程序池 选择您的 32 位应用程序将在下面运行的应用程序池 单击高级设置或应用程序池默认设置启用 32 位应用程序为 True

这个解决方案对我有用,谢谢。

于 2019-12-03T06:49:43.683 回答
0

如果您正在构建 Windows 应用程序,请尝试构建为 x64 而不是 Any CPU。它应该可以正常工作。

于 2020-10-26T15:37:36.420 回答
0

我尝试了所有这些东西,但它对我不起作用。

我刚刚在我的计算机中安装了 SAPCrystalReport,它现在可以工作了。

于 2017-09-14T19:25:17.520 回答
-1

错误(在 win 10 64 位机器上使用 Visual Studio 2015 时):

无法加载文件或程序集 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' 或其依赖项之一。该系统找不到指定的文件。

解决方案:打开 IIS 转到当前服务器 -> 应用程序池 选择您的 32 位应用程序将运行的应用程序池单击高级设置或应用程序池默认设置启用 32 位应用程序为 True

上面的解决方案解决了我的问题。谢谢。

于 2020-08-22T13:08:02.487 回答