0
我正在尝试编写代码,它将从web api动作的当前请求中抓取一个文件,然后将该文件保存到服务器。此代码位于与主Web api项目分离的自己的项目中。当代码运行我得到这个错误:从外部代码抓取当前web api请求
Could not load file or assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
这是在自己的项目中的代码应该捕获请求:
public class Upload<T> where T : HttpRequestMessage
{
private readonly T _req;
// Constructor
public Upload()
{
}
public Upload(T t)
{
_req = t;
}
// METHODS
public async Task<HttpResponseMessage> SingleFile(string dirName, string typeDir)
{
// check request
if (!_req.Content.IsMimeMultipartContent())
{
return _req.CreateResponse(HttpStatusCode.UnsupportedMediaType);
}
// More code etc.
}
}
这是从主网页API项目中调用代码:
[HttpPost]
public HttpResponseMessage CreateProduct()
{
var up = new FileTools.Upload<HttpRequestMessage>(this.Request);
var message = up.SingleFile("test", "mytestDir"); // error appears here
return message.Result;
}
你是对的。属性选项卡显示运行时版本似乎相同,但属性选项卡最底部的版本号不同。我最终不得不将web api 2.2 nuget包导入到单独的项目中,以获得与之匹配的版本号。 – user1206480 2014-08-28 01:53:13