【问题标题】:Windows server 2008 IIS 7.5 folder or file cannot be found with +Windows server 2008 IIS 7.5 文件夹或文件找不到 +
【发布时间】:2012-04-30 07:34:58
【问题描述】:

我的问题是,服务器上有一个网站: - 视窗服务器 2008 - IIS 7.5

还有一些图片文件的文件夹。

文件夹和文件名是这样的:

www.somedomain.com/images/picture+pro/myimage.gif

还有

www.somedomain.com/images/picture/myimage+pro.gif

有同样的问题。

问题是;特殊字符“+”无法在带有 IIS 7.5 的 Windows Server 2008 上读取,但当我在 Windows 7 机器上使用 Visual Studio 2010 本地开发时读取它。

我可以在 Windows 2008 或 IIS 7.5 上进行一些配置以允许读取包含“+”字符的文件夹和/或文件吗?

非常感谢

【问题讨论】:

  • 是 + .. 不是 %2B .. 服务器上的文件夹使用的是 + 另外,在 html img src 中也使用了 + 而不是 %2B
  • 那你为什么希望它起作用呢?见Reserved Characters
  • 因为,正如我在问题中提到的那样;它现在可以正常工作,当我在 Visual Studio 2010 上本地运行它时。另外,我尝试在 html 图像 src 属性上编写 %2B 而不是 +,但它没有用。另外,我尝试将服务器上的文件夹名称 + 更改为 %2B ,它也不起作用。
  • 不要在服务器上更改。
  • 我也试过了,只是将 URL 从 + 更改为 %2B 并将服务器文件夹名称保留为 + 而不更改。不幸的是,这也没有帮助。

标签: windows iis-7.5 special-folders


【解决方案1】:

有趣的是,我今天在使用 IIS ARR 反向代理运行在 Windows 上的 TomCat 应用程序时遇到了这样的事情,该应用程序在其 url 中使用 + 字符。

尝试在网站上允许allowDoubleEscaping。如果您有 IIS MMC 访问权限,则可以在请求过滤小程序中进行配置:

如果没有并且您的托管商允许,您可以在您网站的 web.config 文件中进行设置:

<configuration>
  <system.webServer>
    <security>
      <requestFiltering allowDoubleEscaping="true">
      </requestFiltering>
    </security>
  </system.webServer>
</configuration>

如果你得到了应该工作:

HTTP 错误 404.11 - 未找到

请求过滤模块被配置为拒绝一个 包含双转义序列的请求。

【讨论】:

  • 绝对棒极了!非常感谢你。彻底解决了我的问题!
【解决方案2】:

很遗憾,我无法在服务器上解决此问题,而是更改了相关数据库上的引用名称,删除了“+”字符。

因此,我认为可以公平地说,即使“+”字符在本地计算机上使用 Visual Studio 的虚拟 IIS 服务器,也并不意味着它可以在 Windows 服务器上运行。

我要感谢 ta.speot.is 的努力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 2011-04-07
    相关资源
    最近更新 更多