搜索后我尝试过的事情:
在Web.Config中对旧版本进行了绑定:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.1.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)编辑我的.csproj文件以确保只有一个Newtonsoft引用
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<Private>True</Private>
</Reference>
Run Code Online (Sandbox Code Playgroud)在我的计算机上搜索每个Newtonsoft.Json.dll并删除每个非6.0.1版本并删除我的临时文件夹的内容
在nuget manager控制台中修复/重新安装软件包
它成功构建,但在访问网站时出错.
编辑
好吧,所以然后我尝试重新安装像每个nuget包,它似乎已经添加了4.5版本的newtonsoft.json.dll,但我得到相同的错误.我的项目的目标freamework是.NET 4.5.1,这是我现在得到的堆栈跟踪:
'/'应用程序中的服务器错误.
无法加载文件或程序集"Newtonsoft.Json"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集"Newtonsoft.Json"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
程序集加载跟踪:以下信息有助于确定无法加载程序集"Newtonsoft.Json"的原因.
===预绑定状态信息===日志:DisplayName = Newtonsoft.Json(部分)WRN:为程序集提供了部分绑定信息:WRN:程序集名称:Newtonsoft.Json | 域ID:2 WRN:仅提供部分程序集显示名称时发生部分绑定.警告:这可能导致装订器装入错误的装配.警告:建议为程序集提供完全指定的文本标识,即WRN:由简单名称,版本,区域性和公钥标记组成.警告:有关此问题的更多信息和常见解决方案,请参阅白皮书http://go.microsoft.com/fwlink/?LinkId=109270.日志:Appbase = file:/// c:/ users/user/documents/visual studio 2013/Projects/foo/bar/LOG:Initial PrivatePath = c:\ users\user\documents\visual studio 2013\Projects\foo\bar\bin调用程序集:(未知).===日志:此绑定在默认加载上下文中启动.日志:使用应用程序配置文件:c:\ users\user\documents\visual studio 2013\Projects\foo\bar\web.config日志:使用主机配置文件:C:\ Users\user\Documents\IISExpress\config\aspnet .config日志:使用C:\ Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config中的计算机配置文件.日志:此时策略未应用于引用(私有,自定义,部分或基于位置的程序集绑定).日志:尝试下载新的URL文件:/// C:/ Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json.DLL.日志:尝试下载新的URL文件:/// C:/ Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json/Newtonsoft.Json.DLL.日志:尝试下载新的URL文件:/// c:/ users/user/documents/visual studio 2013/Projects/foo/bar/bin/Newtonsoft.Json.DLL.日志:使用应用程序配置文件:c:\ users\user\documents\visual studio 2013\Projects\foo\bar\web.config日志:使用主机配置文件:C:\ Users\user\Documents\IISExpress\config\aspnet …
我在这个方法上遇到这个错误:
[HttpGet]
public HttpResponseMessage Search([ModelBinder(typeof(ApiDataTablesModelBinder))] IDataTablesRequest requestModel)
{
var sortedColumn = requestModel.Columns.GetSortedColumns().SingleOrDefault();
bool isDesc = false;
string sortField = "ID";
// get all projects and order them
var projects = lkp_surveyRepo.GetAll();//.OrderBy(sortField, isDesc).ToList();
// filtered projects
var filteredResults = projects;
filteredResults = projects.Where(x => x.code == selectedDistrictID);
var pagedResults = filteredResults.Skip(requestModel.Start).Take(requestModel.Length);
var result = Request.CreateResponse(HttpStatusCode.OK, new DataTablesResponse(requestModel.Draw, pagedResults, filteredResults.Count(), projects.Count()));
return result;
}
Run Code Online (Sandbox Code Playgroud)
我的控制器正在实现Controller:
public class HomeController : Controller
{
Run Code Online (Sandbox Code Playgroud)
我发现了这个问题,但答案对我没有帮助:
asp.net Web API中的CreateResponse方法
完整的错误是:
错误13"System.Web.HttpRequestBase"不包含关于"CreateResponse"的定义和最佳的扩展方法过载"System.Net.Http.HttpRequestMessageExtensions.CreateResponse(System.Net.Http.HttpRequestMessage,System.Net.HttpStatusCode,T )'有一些无效的论点
你看到我做错了吗?也许这个CreateResponse
方法里面有什么问题...谢谢