1

我的问题是,服务器上有一个网站: - Windows server 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 上进行一些配置以允许读取包含“+”字符的文件夹和/或文件吗?

非常感谢你

4

2 回答 2

2

有趣的是,我今天在使用 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 - 未找到

请求过滤模块用于拒绝包含双转义序列的请求。

于 2012-05-03T02:42:40.113 回答
0

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

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

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

于 2012-05-02T06:22:07.413 回答