Asp.net IIS上URL中的特殊字符,IIS挂起

Asp.net IIS上URL中的特殊字符,IIS挂起,asp.net,iis-7.5,sitecore,windows-server-2008-r2,freeze,Asp.net,Iis 7.5,Sitecore,Windows Server 2008 R2,Freeze,我在Windows Server 2008 R2上遇到IIS问题已有一段时间了。我有一个网站需要移动到此服务器 当我们移动解决方案时,会发生的情况是,每个具有特殊字符如æ、ø、å、á或空格(%20)等的URL将无法工作、挂起并最终超时。问题出现在图像和文件(ashx、gif、jpg)上。一切看起来都是URL编码的 在这个问题上,我们对旧服务器没有任何问题 以下是该问题的一些示例: 我肯定我错过了一些疯狂的设置,我希望这里有人能帮助我:) 亲切问候,, Niels不确定IIS问题/解决方案

我在Windows Server 2008 R2上遇到IIS问题已有一段时间了。我有一个网站需要移动到此服务器

当我们移动解决方案时,会发生的情况是,每个具有特殊字符如æ、ø、å、á或空格(%20)等的URL将无法工作、挂起并最终超时。问题出现在图像和文件(ashx、gif、jpg)上。一切看起来都是URL编码的

在这个问题上,我们对旧服务器没有任何问题

以下是该问题的一些示例:

我肯定我错过了一些疯狂的设置,我希望这里有人能帮助我:)

亲切问候,,
Niels不确定IIS问题/解决方案,URL中不允许使用afaik特殊字符,但解决此问题的“Sitecore”方法是通过配置替换字符。本文解释了所需的配置更改:

但实际上,您需要在Sitecore配置中添加更多的encodenamereplacements:

<encodenamereplacements>
    ...
    <replace mode="on" find="æ" replaceWith="a" />
    <replace mode="on" find="ø" replaceWith="o" />
</encodenamereplacements>

...

还有一个线程存在类似问题:

我们尝试一下。但是,如果我们将字符添加到encodenamereplacements中,它还会影响文件夹和文件名吗?正如我所看到的,Sitecore已经构建了带有空格的文件夹,当然这些空格会显示在URL中。这会影响URL,这就是关键所在——用一个字符替换另一个字符。如果要替换空格,请加载项,但请注意,在这种情况下,不应允许名称中的连字符(-)以开头,否则在解析项目时,Sitecore会将连字符转换回空格,从而导致找不到该项目。这取决于您的总体需求和您想要实现的目标。请参阅我在jammykam链接的关于替换丹麦特殊字符问题的线程中的答案,不可能简单地将“æ”替换为“a”。SC LinkManager现在包含一个
lowercaseUrls=“true”
这样您就不必再担心大写转换了。关于双字符的观点很好,正如您所说,最好的解决方案是重命名项目并使用编辑器的显示名称。