Mam aplikację zapytań o akcje, która zwraca dane w oparciu o symbol giełdowy.ASP.NET MVC4 ... jest "BIN" zastrzeżonym słowem kluczowym?
Zasadniczo połączenie AJAX przechodzi na ~/Stocks/GetStockData/{id}
, gdzie {id}
jest symbolem giełdowym.
Działa to dobrze ... ogólnie. Dzisiaj odkryłem, że akcja "Progressive Waste Solutions Ltd.", która ma symbol BIN, wybuchła. Patrząc na dane zwrotne w przeglądarce, widzę, że zwraca 404 dla tego symbolu.
Przyszło mi do głowy, że BIN może być zarezerwowanym słowem, proszącym o jakiś plik binarny lub coś podobnego. Czy tak jest? Jak obejść to bez większego wysiłku? Czy są inne słowa kluczowe, które również mogą powodować ten problem?
UPDATE
Per Artem Neustroev, to może być zastrzeżony słów kluczowych, i będzie chroniony przed routingu do. On odwołuje artykuł, który odwołuje się do strony internetowej, która podaną dookoła było dodać następujące ustawienie konfiguracji w pliku konfiguracyjnym:
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
<!-- ... your other settings ... -->
</system.web>
</configuration>
... co dało mi dalej. Po uruchomieniu mojej strony z tym, ajax wywołanie zwróciło 404,8 błąd:
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, to faktycznie jakoś sens. Routing został ustawiony, aby uniemożliwić komuś dostęp do mojego katalogu bin
i popieram tego rodzaju zapobieganie.
Zastanawiam się, jak powiedzieć określonej grupie metod, że pobieranie rzeczy takich jak BIN
lub CONFIG
(teoretycznie) jest ok, jeśli istnieje zdefiniowana trasa dla niego?
Mocno w to wątpię. Po prostu przesyłasz wartość ciągu, nic nie powinno interpretować tego jako czegoś innego. Czy masz jakieś wewnętrzne komunikaty o błędach, które mogą nam pomóc? –
To jest rzeczywiście możliwe. Zobacz to pytanie: http://stackoverflow.com/questions/6194624/asp-net-mvc3-routing-reserved-words –
Tak. Jest to związane z filtrem zabezpieczeń, który chroni wewnętrzne pliki ASP.NET, takie jak web.config i folder Bin. Według zamieszczonego w blogu posta autorstwa Phila Haacka, stosowanie luźnych zasad dotyczących adresów URL powinno stanowić obejście tego problemu. –