所以我有一个ASP.NET网站,它在我的机器上运行得很好。但当我在网络主机服务器上部署它时,它给了我一个错误,说:
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文件的属性不包含任何字段,如"Build Action"或"Copy Local"等。我使用Newtonsoft来解析JSON。有人能建议我一步一步地解决这个问题吗?
我遇到了诸如清理之类的解决方案。清洁什么?在我的解决方案资源管理器中,有一个BIN文件夹,其中包含Newtonsoft库的dll、xml和pdb;它是使用COPY WEBSITE工具复制到网络主机服务器上的AS-IT-is。
我需要做些什么来解决这个问题?非常感谢。
如果不是部署到应用程序根目录,而是部署到普通的windows文件夹,就会发生这种情况。
bin文件夹必须位于应用程序根目录(~/bin
)中,才能正确解析程序集。你可以通过在web.config-file中更改你的私人探测路径来改变这一点,但这是一个糟糕的解决方案。
请确保将应用程序上载到配置为承载应用程序的文件夹中。如果您具有远程桌面访问权限,则可以在IIS管理器中执行此操作。共享托管解决方案可以在基于web的配置工具中提供此功能。登录您的"控制面板"并环顾四周。
或者你可以直接联系你的主机支持。
执行以下步骤:->解决方案资源管理器窗口->右键单击Visual Studio中的.cs文件->选择属性->构建操作=编译
或
删除Newtonsoft的引用,并将Newtonsoft.dll复制到您的bin文件夹中,然后从中提供引用。
构建您的网站并将其发布到某个文件夹中。然后将所有必需的文件复制到您的web服务器。只需检查您是否在bin文件夹(web服务器)中有Newtonsoft dll。若并没有,则从本地机器复制并粘贴到web服务器。