从外部代码中抓取当前的Web api请求

时间:2014-08-27 21:06:12

标签: c# asp.net-mvc asp.net-web-api asp.net-web-api2

我正在尝试编写代码,从Web api操作中获取当前请求中的文件,然后将文件保存到服务器。此代码位于其自己的项目中,与主Web api项目分开。当代码运行时,我收到此错误:

  

无法加载文件或程序集&System; Web.Http,版本= 4.0.0.0,   Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个   依赖。定位程序集的清单定义没有   匹配程序集引用。 (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.
    }
}

这是主Web 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;
    }

1 个答案:

答案 0 :(得分:3)

看起来包含上传类的项目引用的是与Web应用程序不同的System.Web.Http版本。检查您的引用以确保它们引用相同的程序集。