【问题标题】:ASP.NET MVC Routing vs. Reserved Filenames in WindowsASP.NET MVC 路由与 Windows 中的保留文件名
【发布时间】:2009-06-12 14:58:59
【问题描述】:

在我们的 ASP.NET MVC 应用程序中,我们注意到我们不能拥有禁止的 DOS 文件名 —COM1COM9LPT1LPT9CONAUX、@ 987654330@ 和 NUL——我们航线的任何地方。它们不可避免地导致 IIS 告诉我们找不到文件,即使我们将路由设置为不首先检查文件是否存在。我们如何解决这个问题?

【问题讨论】:

标签: asp.net-mvc windows iis


【解决方案1】:

这已在 ASP.NET 4 中得到解决。http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx

您可以在 web.config 中应用一个放宽此限制的设置。

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

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

希望对您有所帮助。

【讨论】:

  • @thekaid:向后兼容性:MS 不能确定没有人依赖旧的行为。
  • @thekaido 理查德所说的完全正确。您会对人们开始依赖的错误类型感到惊讶。
【解决方案2】:

自从提出这个问题后,我发现该错误在 ASP.NET 中,而不是在 IIS 或 ASP.NET MVC 中,这意味着没有办法解决它。唯一的解决方案是手动禁止匹配这些名称以及这些名称后跟句点和随机字符的 URL。

【讨论】:

  • 是的。 :) ASP.NET 团队意识到了这个错误,并正在为 ASP.NET 4 研究它。不能保证它是否会被修复,但至少有兴趣为开发人员改进它。
【解决方案3】:

出于类似的原因,StackOverflow 中不能有 web.config 标签。

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

【讨论】:

    【解决方案4】:

    由于另一个类似的原因,您不能使用带有点和斜杠的网址 Semantic urls with dots in .net

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-28
      • 1970-01-01
      • 2012-06-04
      • 2010-10-19
      • 1970-01-01
      • 2010-11-08
      • 1970-01-01
      • 2017-05-13
      相关资源
      最近更新 更多