2014-06-20 14 views
6

Mam projekt owin, który go hostuję za pomocą Microsoft.Owin.Host.SystemWeb. To działa dobrze, ale jeśli mam kropka w adresie URL nie powiedzie się i dostaję 404. Na przykładOwin hostowany w IIS nie przechwytuje adresów URL z kropką "."

localhost: 4070/CDN/aa Works

ale

localhost: 4070/cdn/AA nie działa

mam również odbywa się następujące zmiany w

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

Jestem pewien, że to ustawienie rozwiązuje ten problem w prosty aSP.NET web API, ale mam ten problem z Owin .

aktualizacja

Próbowałem to z owin gospodarz jest podobne zachowania, rozmowy z „” nie są kierowane do webapi.

Rozumiem zachowanie, że gdy w ostatniej części adresu URL znajduje się kropka, framework myśli, że jest plikiem i próbuje go obsłużyć, ale moim problemem jest to, że chciałbym obsłużyć te adresy w moim normalnym procesie . Właściwie to piszę proxy dla Microsoft cdn, a pliki są generowane w czasie wykonywania przy użyciu innego serwera.

Odpowiedz

7

Ten config pracował dla mnie:

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

W odred uzyskać ścieżkę od "public /" folder i umieścić go w odpowiedzi skończyło się tak:

string filePath = System.Web.Hosting.HostingEnvironment.MapPath("~/public" + context.Request.Path); 
Powiązane problemy