0

我正在一个示例 .NET WebApi 应用程序中试用 Breeze.js 框架。我有几个控制器设置工作并使用 Unity.WebApi 注入应用程序的工作单元。

我正在使用 Entity Framework 6,所以我使用“Breeze 客户端和服务器 - 带有 ASP.NET Web API 2 和 Entity Framework 6 的 Javascript 客户端”包(id:Breeze.WebApi2.EF6)安装了 Breeze。之后我添加了 BreezeController,但现在我的应用程序中断了,出现以下错误:

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)

源错误:

Line 15:             GlobalConfiguration.Configuration.DependencyResolver = 
Line 16:                 new UnityDependencyResolver(container);
Line 17:         }
Line 18: 
Line 19:         private static IUnityContainer BuildUnityContainer()

谷歌搜索和 StackOverflowing 这个错误会产生与不同情况相关的结果,所以对那些没有太大帮助的地方。但是错误来自 Unity 的 Bootstrapper 文件,所以我删除了 Unity,然后我的 Breeze 控制器开始工作。把 Unity 放回去——它又坏了

微风控制器:

public class BreezeController : ApiController
{
    readonly EFContextProvider<DataContext> _contextProvider = 
        new EFContextProvider<DataContext>();

    [HttpGet]
    public string Metadata()
    {
        return _contextProvider.Metadata();
    }

    [HttpGet]
    public IQueryable<Category> Categories()
    {
        return _contextProvider.Context.Categories;
    }
}
4

1 回答 1

0

这听起来像是一个 Unity 问题。您安装的 Unity 版本很可能没有针对最新的 VS2013 版本进行更新。请与 Microsoft 核实。

您可以通过编写一个完全没有 Breeze 的测试用例来自己取得一些进展。从头开始,创建一个 Web API 项目。然后添加统一。然后创建一个无所事事的类并尝试注入它。我敢打赌那会失败。如果没有,请添加微风包并重试。

于 2013-11-11T01:54:11.907 回答