0

所以我有一个 ASP.NET 网站,它在我的机器上运行良好。但是当我将它部署在 Web 主机服务器上时,它给了我一个错误消息:

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: CS0246: The type or namespace name 'Newtonsoft' could not be found (are you missing a using directive or an assembly reference?)

Source Error:


Line 15: using Microsoft.VisualBasic;
Line 16: using System.Data.SqlClient;
Line 17: using Newtonsoft.Json;
Line 18: using System.Globalization;
Line 19: using System.Text.RegularExpressions;

我认为这是一个典型的错误,并且已经有人问过类似的问题,即使我以前也是如此。但是,所有解决方案要么不明确,要么不适用。

由于它是一个“网站”项目,因此 aspx.cs 文件的属性不包含任何字段,例如“构建操作”或“复制本地”等。我正在使用 Newtonsoft 解析 JSON。有人可以建议我逐步解决这个问题吗?

我遇到了诸如清理之类的解决方案。清洁什么?在我的解决方案资源管理器中,有一个 BIN 文件夹,其中包含 Newtonsoft 库的 dll、xml 和 pdb;使用 COPY WEBSITE 工具将其原样复制到 webhost 服务器。

我需要做什么来解决问题?谢谢一堆。

4

3 回答 3

1

如果您不部署到应用程序根目录,而是部署到普通的 windows 文件夹,就会发生这种情况。

bin 文件夹必须位于您的应用程序根目录 ( ~/bin) 中,才能正确解析程序集。您可以通过更改 web.config 文件中的私有探测路径来更改此设置,但这是一个糟糕的解决方案。

确保您将应用程序上传到配置为托管应用程序的文件夹。如果您有远程桌面访问权限,这可以在您的 IIS 管理器中完成。共享主机解决方案可以在基于 Web 的配置工具中提供此功能。登录您的“控制面板”并环顾四周。

或者您可以联系您的托管支持。

于 2014-07-28T18:03:43.393 回答
0

采取这些步骤: -> 解决方案资源管理器窗口 -> 在 Visual Studio 中的 .cs 文件上用鼠标右键 -> 选择属性 -> 构建操作 = 编译

或者

删除您的 Newtonsoft 的引用并将 Newtonsoft.dll 复制到您的 bin 文件夹并从那里提供参考。

于 2012-08-23T12:37:20.647 回答
0

建立您的网站并将其发布到某个文件夹。然后将所有必需的文件复制到您的 Web 服务器。只需检查 bin 文件夹(Web 服务器)中是否有 Newtonsoft dll。如果没有,则从本地计算机复制并粘贴到 Web 服务器。

于 2014-04-26T16:16:58.477 回答