qui un'altra domanda simile a SignalR 2.0.2 and Owin 2.0.0 dependency conflict. Se eseguo il progetto come applicazione console, sto bene. In caso contrario, come libreria di classi se l'eseguo dal prompt dei comandi ho ottenuto questo errore da IIS espresso dicendo:Conflitto di dipendenza Microsoft.Owin 2.0.2.0 quando ho installato 3.0.0.0
Could not load file or assembly 'Microsoft.Owin, Version=2.0.2.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)
ma non può essere, come ho installato 3.0.0.0 e nel file di configurazione che ho:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Qui il resto dell'applicazione:
namespace katanaIntro
{
using AppFunc = Func<IDictionary<string, object>, Task>;
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Use(async (environment, next) =>
{
Console.WriteLine("Requestion : " + environment.Request.Path);
await next();
Console.WriteLine("Response : " + environment.Response.StatusCode);
});
ConfigureWebApi(app);
app.UseHelloWorld();
}
private void ConfigureWebApi(IAppBuilder app)
{
var config = new HttpConfiguration();
config.Routes.MapHttpRoute(
"DefaultApi",
"api/{controller}/{id}",
new { id = RouteParameter.Optional });
app.UseWebApi(config); // <-- It works without this!!!
}
}
public static class AppBuilderExtensions
{
public static void UseHelloWorld(this IAppBuilder app)
{
app.Use<HelloWorldComponent>();
}
}
public class HelloWorldComponent
{
AppFunc _next;
public HelloWorldComponent(AppFunc next)
{
_next = next;
}
public Task Invoke(IDictionary<string, object> environment)
{
var response = environment["owin.ResponseBody"] as Stream;
using (var writer = new StreamWriter(response))
{
return writer.WriteAsync("Hello!!!");
}
}
}
}
Qui l'istruzione dal prompt dei comandi:
"c:\Program Files\IIS Express\iisexpress.exe" /path:"C:\Users\smagistri\Projects\Lab 4.5\katanaIntro\katanaIntro"
Ho dimenticato di dire che funziona solo se rimuovo ConfigureWebApi (app);
Qualche idea?
È necessario selezionare questo come risposta. Ho affrontato questo problema mentre lavoravo con il video del sito plurale di K. Scott Allen "ASP.NET MVC 5 Fundamentals". Non lo menziona come un passo per far funzionare il progetto KatanaIntro. Forse è un nuovo problema. – Jordan
Come in Giordania e questo ha funzionato alla grande. Grazie! –
Mi sono imbattuto nella stessa cosa nel video Plural Site di Scott Allen mentre stavo scrivendo l'app insieme a lui. Grazie per la risposta!! –