gpt4 book ai didi

c# - ASP.NET MVC4 ... "BIN"是保留关键字吗?

转载 作者:可可西里 更新时间:2023-11-01 08:45:01 24 4
gpt4 key购买 nike

我有一个股票查询应用程序,它根据股票代码返回数据。

基本上,AJAX 调用转到 ~/Stocks/GetStockData/{id},其中 {id} 是股票代码。

这很好用……一般来说。今天我发现股票“Progressive Waste Solutions Ltd.”,其股票代码为BIN​​,炸毁了。查看浏览器中的返回数据,我看到它为此符号返回 404。

我突然想到 BIN 可能是一个保留字,要求一些二进制文件或其他东西。是这样吗?我如何在不付出很多努力的情况下解决这个问题?是否还有其他关键字也会导致此问题?

更新

Per Artyom Neustroev,这可能是一个保留关键字,并且不会被路由到。他引用了一篇文章,该文章引用了一个网站,该网站指出解决此问题的方法是在配置文件中添加以下配置设置:

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

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

...这让我更进一步。用这个运行我的网站后,ajax 调用返回了一个 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.

好吧,这实际上有点道理。设置路由是为了防止有人进入我的 bin 目录,我赞成这种预防措施。

所以我想知道如何告诉一组特定的方法获取像 BINCONFIG(理论上)这样的东西是可以的,如果有一个定义的路线是吗?

最佳答案

这里是一个概要:

路由机制会考虑隐藏的目录和文件(如 web.config、/bin 等)并将它们隐藏起来。对于其中一些,规则可以放宽一点,因为它们是在代码中处理的。这些“关键字”是:CONCOM1COM2COM3COM4LPT1LPT2AUXPRNNUL。这些实际上可以通过更改您的 web.config 文件来引用:

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

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

但是,其他类型的隐藏关键字不是在代码中管理的,而是在 IIS 中管理的。你有两个选择。您可以按照 Artyom Neustroev 的建议修改 IIS 设置(他链接到 this ),这让我觉得有点危险,但我希望它会起作用。

我选择的另一个选项是将我的 AJAX 调用更改为 POST 方法。然后该值不在 URL 中,整个问题就被规避了。

感谢所有让我走到这一步的人。

关于c# - ASP.NET MVC4 ... "BIN"是保留关键字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23030544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com