I have an asp.net MVC app that utilizes owin json web tokens. I have been deploying this app via the Kudu github integration, and the app works fine.
However, I would like to move to deploy via octopus. I am able to create the nuget package needed to deploy and the package is showing as successfully deployed by my octopus server.
Here is where things get weird:
After I deploy via octopus, I am getting the following exception:
Could not load file or assembly 'System.IdentityModel.Tokens.Jwt, 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)
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.IO.FileLoadException: Could not load file or assembly 'System.IdentityModel.Tokens.Jwt, 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)
TL;DR: why is it that I can run the program fine when deploying via Kudu, but not from a nuget package?
below are some additional details:
MyApp.nuspec:
<?xml version="1.0"?> <package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"><metadata><id>MyApp</id><version>1.0.0.0</version><authors>John Smith</authors><owners>MyCompany</owners><projectUrl>https://github.com/myCompany/MyApp</projectUrl><iconUrl>https://image.flaticon.com/icons/svg/297/297568.svg</iconUrl><requireLicenseAcceptance>false</requireLicenseAcceptance><releaseNotes>Intital Release</releaseNotes><description>MyApp deployment package</description><tags>web app myapp</tags></metadata> </package>
packages.config
<?xml version="1.0" encoding="utf-8"?><packages><package id="Antlr" version="3.5.0.2" targetFramework="net45" /><package id="bootstrap" version="3.3.7" targetFramework="net461" /><package id="EntityFramework" version="6.1.3" targetFramework="net45" /><package id="FontAwesome" version="4.7.0" targetFramework="net461" /><package id="jQuery" version="3.1.1" targetFramework="net461" /><package id="jQuery.Validation" version="1.16.0" targetFramework="net461" /><package id="log4net" version="2.0.8" targetFramework="net461" /><package id="Microsoft.ApplicationInsights" version="2.3.0" targetFramework="net461" /><package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.7" targetFramework="net461" /><package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.3.0" targetFramework="net461" /><package id="Microsoft.ApplicationInsights.Log4NetAppender" version="2.2.0" targetFramework="net461" /><package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.3.0" targetFramework="net461" /><package id="Microsoft.ApplicationInsights.Web" version="2.3.0" targetFramework="net461" /><package id="Microsoft.ApplicationInsights.WindowsServer" version="2.3.0" targetFramework="net461" /><package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.3.0" targetFramework="net461" /><package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net45" /><package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net45" /><package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net45" /><package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net45" /><package id="Microsoft.Azure.KeyVault.Core" version="2.0.4" targetFramework="net461" /><package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net461" /><package id="Microsoft.IdentityModel.Protocol.Extensions" version="1.0.4.403061554" targetFramework="net461" /><package id="Microsoft.jQuery.Unobtrusive.Validation" version="3.2.3" targetFramework="net45" /><package id="Microsoft.Net.Compilers" version="2.1.0" targetFramework="net461" developmentDependency="true" /><package id="Microsoft.Owin" version="3.1.0" targetFramework="net461" /><package id="Microsoft.Owin.Host.SystemWeb" version="3.1.0" targetFramework="net461" /><package id="Microsoft.Owin.Security" version="3.1.0" targetFramework="net461" /><package id="Microsoft.Owin.Security.Cookies" version="3.1.0" targetFramework="net461" /><package id="Microsoft.Owin.Security.OpenIdConnect" version="3.0.1" targetFramework="net461" /><package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" /><package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="net461" /><package id="Microsoft.WindowsAzure.ConfigurationManager" version="3.2.3" targetFramework="net461" /><package id="Newtonsoft.Json" version="10.0.2" targetFramework="net461" /><package id="Owin" version="1.0" targetFramework="net45" /><package id="Respond" version="1.4.2" targetFramework="net45" /><package id="System.Collections" version="4.3.0" targetFramework="net461" /><package id="System.Collections.Concurrent" version="4.3.0" targetFramework="net461" /><package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="net461" /><package id="System.Diagnostics.DiagnosticSource" version="4.3.1" targetFramework="net461" /><package id="System.Globalization" version="4.3.0" targetFramework="net461" /><package id="System.IdentityModel.Tokens.Jwt" version="4.0.4.403061554" targetFramework="net461" /><package id="System.IO" version="4.3.0" targetFramework="net461" /><package id="System.Linq" version="4.3.0" targetFramework="net461" /><package id="System.Net.Http" version="4.3.2" targetFramework="net461" /><package id="System.Net.Primitives" version="4.3.0" targetFramework="net461" /><package id="System.Reflection" version="4.3.0" targetFramework="net461" /><package id="System.Reflection.Extensions" version="4.3.0" targetFramework="net461" /><package id="System.Runtime" version="4.3.0" targetFramework="net461" /><package id="System.Runtime.Extensions" version="4.3.0" targetFramework="net461" /><package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="net461" /><package id="System.Runtime.Serialization.Json" version="4.3.0" targetFramework="net461" /><package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="net461" /><package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="net461" /><package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net461" /><package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net461" /><package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="net461" /><package id="System.Spatial" version="5.8.2" targetFramework="net461" /><package id="System.Text.Encoding" version="4.3.0" targetFramework="net461" /><package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="net461" /><package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="net461" /><package id="System.Threading" version="4.3.0" targetFramework="net461" /><package id="System.Threading.Tasks" version="4.3.0" targetFramework="net461" /><package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="net461" /><package id="System.Xml.XDocument" version="4.3.0" targetFramework="net461" /><package id="WebActivatorEx" version="2.2.0" targetFramework="net461" /><package id="WebGrease" version="1.6.0" targetFramework="net45" /></packages>
dependentAssembly section of my web.config:
<runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><dependentAssembly><assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="Microsoft.ApplicationInsights" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-2.3.0.0" newVersion="2.3.0.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" /></dependentAssembly><dependentAssembly><assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" /></dependentAssembly><dependentAssembly><assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" /></dependentAssembly><dependentAssembly><assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-4.0.40306.1554" newVersion="4.0.40306.1554" /></dependentAssembly><dependentAssembly><assemblyIdentity name="Microsoft.IdentityModel.Protocol.Extensions" publicKeyToken="31bf3856ad364e35" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-1.0.40306.1554" newVersion="1.0.40306.1554" /></dependentAssembly><dependentAssembly><assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /><bindingRedirect oldVersion="0.0.0.0-4.1.1.1" newVersion="4.1.1.1" /></dependentAssembly></assemblyBinding></runtime>