Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Breeze和Unity在ASP.NET WebApi应用程序中不协同工作_C#_Asp.net Web Api_Unity Container_Breeze - Fatal编程技术网

C# Breeze和Unity在ASP.NET WebApi应用程序中不协同工作

C# Breeze和Unity在ASP.NET WebApi应用程序中不协同工作,c#,asp.net-web-api,unity-container,breeze,C#,Asp.net Web Api,Unity Container,Breeze,我正在一个示例.NETWebAPI应用程序中试用Breeze.js框架。我设置了几个控制器,并使用Unity.WebApi注入应用程序的工作单元 我使用的是EntityFramework6,所以我使用“BreezeClient and Server-Javascript Client with ASP.NETWebAPI 2 and EntityFramework6”包(id:Breeze.WebApi2.EF6)安装了Breeze。完成后,我添加了BreezeController,但现在我的应

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

我使用的是EntityFramework6,所以我使用“BreezeClient and Server-Javascript Client with ASP.NETWebAPI 2 and EntityFramework6”包(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()
谷歌搜索和StackOverflow这个错误会产生与不同情况相关的结果,所以那些没有很大帮助的地方。但是错误来自Unity的引导程序文件,所以我删除了Unity,然后我的Breeze控制器开始工作。把团结放回去——它又破裂了

微风控制器:

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;
    }
}
公共类BreezeController:ApiController
{
只读EFContextProvider\u contextProvider=
新的EFContextProvider();
[HttpGet]
公共字符串元数据()
{
返回_contextProvider.Metadata();
}
[HttpGet]
公共可查询类别()
{
返回_contextProvider.Context.Categories;
}
}

这听起来像是一个统一问题。您安装的Unity版本很有可能没有针对最新的VS2013版本进行更新。请向微软查询


通过编写一个毫无困难的测试用例,您可以自己取得一些进展。从头开始,创建一个WebAPI项目。然后再加上团结。然后创建一个不做任何事情的类并尝试注入它。我敢打赌那是失败的。如果没有,请添加breeze包并重试

我想我就是这么做的。我从零开始了一个项目,添加了几个控制器,安装了Unity,一切正常,只有在我安装Breeze时它才坏了。可能是因为Breeze还更新了我使用的WebApi版本。我会检查的,值得检查。在过去的几周里,我们一直在努力将所有不同的组件放在同一个页面上。“DLL地狱”的结尾就到此为止:D.感谢您的耐心。WebApi似乎也在进行一些更新,所以希望看到事情很快稳定下来。但我可能错过了什么。“微风”和“统一”似乎是分开工作的,但当我把它们放在一起时,就会出现一些不一致的地方,出现错误。但是谢谢你的帮助,我稍后再试。肯定有很多DLL需要处理。