发布到Azure程序集后无法加载Microsoft.Owin

时间:2015-12-04 19:58:45

标签: asp.net azure .net-assembly

我有一个非常简单的ASP.NET项目,当我从Visual Studio运行它时工作正常,但在我发布到Azure Web App后,我收到此错误

  

无法加载文件或程序集' Microsoft.Owin.Security,Version = 2.0.1.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

我到处寻找并且我没有使用 - 至少不是故意 - 这个程序集并且它没有列在Web.config或Package.config上,或者我在解决方案中进行搜索的任何地方。

我真的不知道我在这里失踪了什么。也许是Azure方面的配置。

这是堆栈跟踪

  

[FileLoadException:无法加载文件或程序集' Microsoft.Owin,Version = 2.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)]      SampleWebApp.Startup.ConfigureAuth(IAppBuilder app)+0      SampleWebApp.Startup.Configuration(IAppBuilder app)+5

     

[TargetInvocationException:调用目标抛出了异常。]      System.RuntimeMethodHandle.InvokeMethod(Object target,Object [] arguments,Signature sig,Boolean constructor)+0      System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj,Object [] parameters,Object [] arguments)+92      System.Reflection.RuntimeMethodInfo.Invoke(Object obj,BindingFlags invokeAttr,Binder binder,Object []参数,CultureInfo文化)+136      Owin.Loader。<> c__DisplayClass12.b__b(IAppBuilder builder)+66      Owin.Loader。<> c__DisplayClass1.b__0(IAppBuilder builder)+123      Microsoft.Owin.Host.SystemWeb。<> c__DisplayClass2.b__0(IAppBuilder builder)+71      Microsoft.Owin.Host.SystemWeb.OwinAppContext.Initialize(Action 1 startup) +462 Microsoft.Owin.Host.SystemWeb.OwinBuilder.Build(Action 1 startup)+40      Microsoft.Owin.Host.SystemWeb.OwinHttpModule.InitializeBlueprint()+70      System.Threading.LazyInitializer.EnsureInitializedCore(T& target,Boolean& initialized,Object& syncLock,Func`1 valueFactory)+115      Microsoft.Owin.Host.SystemWeb.OwinHttpModule.Init(HttpApplication context)+106      System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)+537      System.Web.HttpApplication.InitSpecial(HttpApplicationState状态,MethodInfo []处理程序,IntPtr appContext,HttpContext上下文)+172      System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context)+364      System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+290

     

[HttpException(0x80004005):调用目标抛出了异常。]      System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+4531288      System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+94      System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+191

1 个答案:

答案 0 :(得分:4)

好吧,我找到了问题的根源。

我之前使用身份验证的ASP.NET Web应用程序 - 我不记得是哪一个。经过一些更改后,我发布了Azure,一切正常。

稍后,我更改为使用令牌进行身份验证,因此我决定删除使用身份验证的现有ASP.NET Web应用程序,并在没有它的情况下创建一个新的。发布到Azure后,我开始收到上述问题中描述的错误。当然,我的新Web应用程序没有任何对任何身份验证的引用,但我在不删除以前的文件的情况下使用Azure。

所以,我所做的就是再次发布,但这一次在发布设置中我单击了文件发布选项并选中了删除目标上的附加文件选项。我假设此选项从使用身份验证创建的第一个Web App中删除任何现有文件和引用。现在我的新Web应用程序运行正常。

Remove additional files at destination