ASP.NET MVC Routing vs Reservede Filnavne i Windows

Indlæg af Hanne Mølgaard Plasc

Problem



I vores ASP.NET MVC-applikation har vi bemærket, at vi ikke kan have de forbudte DOS-filnavne COM1 gennem COM9, LPT1 til LPT9, CON]], AUX, PRN og NUL — hvor som helst i vores ruter. De fører uundgåeligt til, at IIS fortæller os, at filen ikke kan findes, selv når vi vælger routing for ikke at kontrollere eksistensen af ​​filer først. Hvordan kan vi arbejde rundt om dette?

Bedste reference


Dette er blevet behandlet i ASP.NET 4. http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx[11]


Du kan anvende en indstilling i web.config, der slipper denne begrænsning.


<configuration>
  <system.web>
    <httpRuntime relaxedUrlToFileSystemMapping="true"/>

    <!-- ... your other settings ... -->
  </system.web>
</configuration>


Håber det hjælper.

Andre referencer 1


Siden jeg stillede spørgsmålet, har jeg fundet ud af, at fejlen er i ASP.NET korrekt, ikke IIS eller ASP.NET MVC, hvilket betyder at der ikke er nogen måde at arbejde rundt på. Den eneste løsning er at manuelt forbyde webadresser, der matcher disse navne og disse navne efterfulgt af en periode og tilfældige tegn.

Andre referencer 2


Af en lignende årsag kan der ikke være et web.config tag i StackOverflow.


http://stackoverflow.uservoice.com/pages/1722-general/suggestions/98871-web-config-tag-404-error[12]

Andre referencer 3


Af en anden lignende grund kan du ikke have URL'er med en prik og et skråstreg
Semantiske url med prikker i .net