我一直試圖沒有成功獲得ASP Web API/Autofac集成工作。我創建了一個簡單的項目,其中一個Controller返回一個字符串,並且能夠成功運行應用程序。然而,當我融入到Autofac解決方案,在運行時我收到System.EntryPointNotFoundException: Entry point was not found.
ASP Web API和Autofac集成異常
- 的Visual Studio Pro的2013
- .NET 4.5
這裏是包含在項目庫中的版本,當我創建它在我的機器上(不包括Autofac庫)。我從Nuget獲得Autofac庫,所有其他庫都在本地安裝。
- 的System.Web 4.0
- System.Web.Extensions程序4.0
- System.Web.Http 5.0
- System.Web.Http.WebHost 5.0
- System.Web.Services 4.0
- Autofac 3.0 /說明說3.1.5
- Autofac.Integration.WebApi 3.0 /描述說3.1
我把Autofac代碼在我的註冊方法是這樣的:
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);
}
}
我收到EntryPointNotFoundException
在Application_Start方法:
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
於是我通過的NuGet和升級ALL包得到這些版本:
- System.Web 4.0 個
- System.Web.Extensions程序4.0
- System.Web.Http 5.2.2
- System.Web.Http.WebHost 5.2.2
- System.Web.Services 4.0
- Autofac 3.5 /描述說:3.5 0.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很好地一起玩?
謝謝,凱爾
你如何舉辦的applcation?在IIS中還是使用IIS Express?你可以在新創建的項目中重現這個錯誤嗎?我只能找到一個有點相關的文章:http://www.aaron-powell.com/posts/2010-04-08-problems-with-assembly-trust.html – nemesv 2014-10-26 16:50:11