2014-06-20 17 views
6

Ho un progetto owin che sto ospitando utilizzando Microsoft.Owin.Host.SystemWeb. Funziona benissimo, ma se ho un punto nell'URL viene a mancare ed ottengo un 404. Per esempioOwin ospitato su IIS non cattura gli URL con Dot "."

localhost: 4070/cdn/aa funziona

ma

localhost: 4070/cdn/aa non funziona

ho fatto anche le seguenti modifiche in

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true">  
    </modules> 

sono sicuro che questa impostazione risolve il problema in pianura asp.net web API, ma sto avendo questo problema con Owin .

aggiornamento

Ho provato questo con l'host Owin è un comportamento simile, le chiamate con "" non sono indirizzati a webapi.

Posso capire il comportamento che quando c'è un punto nell'ultima parte dell'URL il framework pensa che sia un file e prova a gestirlo ma il mio problema è che mi piacerebbe gestire questi URL nella mia normale pipeline . In realtà sto scrivendo un proxy per Microsoft cdn e i file vengono generati in fase di runtime utilizzando un altro server.

risposta

7

Questa configurazione ha funzionato per me:

<system.webServer> 
    <handlers> 
    <add name="OWIN" path="*" verb="*" type="Microsoft.Owin.Host.SystemWeb.OwinHttpHandler" /> 
    </handlers> 
</system.webServer> 

In odred per ottenere il percorso del file da "pubblico /" cartella e metterlo in risposta ho finito con questo:

string filePath = System.Web.Hosting.HostingEnvironment.MapPath("~/public" + context.Request.Path); 
Problemi correlati