gpt4 book ai didi

c# - ASP Web API 和 Autofac 集成异常

转载 作者:太空狗 更新时间:2023-10-30 00:24:20 24 4
gpt4 key购买 nike

我一直在努力使 ASP Web API/Autofac 集成工作,但没有成功。我创建了一个简单的项目,其中一个 Controller 返回一个字符串,并且能够成功运行该应用程序。但是,当我将 Autofac 集成到解决方案中时,在运行时我收到了 System.EntryPointNotFoundException: Entry point was not found.

  • Visual Studio 专业版 2013
  • .NET 4.5

这是我在我的机器上创建项目时包含在项目中的库版本(减去 Autofac 库)。我从 Nuget 获取 Autofac 库,所有其他库都在本地安装。

  • 系统.Web 4.0
  • System.Web.Extensions 4.0
  • 系统.Web.Http 5.0
  • 系统.Web.Http.WebHost 5.0
  • 系统.Web.服务 4.0
  • Autofac 3.0/描述为 3.1.5
  • Autofac.Integration.WebApi 3.0/描述为 3.1

我将 Autofac 代码放入我的 Register 方法中,如下所示:

public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//Other code left out for brevity

var builder = new ContainerBuilder();
builder.RegisterApiControllers(Assembly.GetExecutingAssembly());

// Set the dependency resolver to be Autofac.
var container = builder.Build();
config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
}
}

我在 Application_Start 方法中收到 EntryPointNotFoundException:

public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}

然后我通过 Nuget 升级所有包并获得这些版本:

  • 系统.Web 4.0
  • System.Web.Extensions 4.0
  • 系统.Web.Http 5.2.2
  • 系统.Web.Http.WebHost 5.2.2
  • 系统.Web.服务 4.0
  • Autofac 3.5/描述为 3.5.2
  • Autofac.Integration.WebApi 3.0/描述为 3.1.0

这部分现在被插入到 web.config 文件中:

  <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.5.0.0" newVersion="3.5.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

当我再次运行该应用程序时,我仍然收到 System.EntryPointNotFoundException: Entry point was not found.

要让 Autofac 和 Web API 很好地协同工作,我还缺少什么?

谢谢,凯尔

最佳答案

我想通了这个问题。您需要确保 Autofac 的版本与 Web API 的版本兼容。就我而言,我使用的是 Web API 2.2 库,但使用的是标记为 Autofac ASP.NET Web API Integration 的 Autofac 版本。一旦我切换到 Autofac ASP.NET Web API 2.2 Integration,我的解决方案就起作用了。毫无疑问,这是一个细微的差别,而且很容易假设您使用的是正确的版本。

凯尔

enter image description here

关于c# - ASP Web API 和 Autofac 集成异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26575078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com