Ho un'applicazione di query di borsa che restituisce i dati in base a un simbolo di magazzino.ASP.NET MVC4 ... è "BIN" una parola chiave riservata?
Fondamentalmente, la chiamata AJAX va a ~/Stocks/GetStockData/{id}
dove il {id}
è il simbolo di serie.
Questo funziona bene ... in generale. Oggi ho scoperto che il titolo "Progressive Waste Solutions Ltd.", che ha un simbolo di BIN, è esploso. Guardando i dati di ritorno nel browser, vedo che restituisce un 404 per questo simbolo.
Mi è venuto in mente che BIN potrebbe essere una parola riservata, che richiede un file binario o qualcosa del genere. È questo il caso? Come posso aggirare questo senza un sacco di sforzo? Ci sono altre parole chiave che causeranno anche questo problema?
UPDATE
Per Artyom Neustroev, questo potrebbe essere una parola chiave riservata, e sarebbero stati protetti dal routing a. Egli fa riferimento un articolo che fa riferimento un sito web che ha dichiarato il modo per aggirare questo è stato quello di aggiungere la seguente impostazione di configurazione nel file di configurazione:
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
<!-- ... your other settings ... -->
</system.web>
</configuration>
... che mi ha fatto ulteriormente. Al momento in esecuzione il mio sito con questo, la chiamata ajax restituito un errore 404,8:
HTTP Error 404.8 - Not Found
The request filtering module is configured to deny a path in the URL that contains a hiddenSegment section.
OK, questo rende di fatto sorta senso. Il routing è stato impostato per impedire a qualcuno di entrare nella mia directory bin
e approvo questo tipo di prevenzione.
Quindi mi chiedo come dire ad un particolare gruppo di metodi che ottenere cose come BIN
o CONFIG
(teoricamente) è ok se c'è un percorso definito per questo?
Ne dubito fortemente. Stai solo trasmettendo un valore stringa, niente dovrebbe interpretarlo come qualcos'altro. Hai qualche messaggio di errore interno che potrebbe aiutarci? –
Questo è effettivamente possibile. Vedi questa domanda: http://stackoverflow.com/questions/6194624/asp-net-mvc3-routing-reserved-words –
Sì. È correlato al filtro di sicurezza che protegge i file ASP.NET interni come web.config e la cartella Bin. Secondo il post sul blog collegato di Phil Haack, l'utilizzo di regole URL rilassate dovrebbe essere una soluzione alternativa. –