ASP.NET站点移动到IIS7会导致页面输出中出现乱码

fra*_*lic 5 asp.net iis iis-7 windows-server-2008

我有一个在Windows Server 2003/IIS6上运行良好的ASP.NET站点.

我将它移动到Windows Server 2008/IIS7,aspx页面输出现在包括乱码文本.

例如:

p

�����

大部分页面呈现正确,但这里和那里都有胡言乱语.我检查了事件日志,什么都没有.

知道这里发生了什么吗?我怎样才能解决这个问题?

我注意到,当我在aspx代码中包含多个Server.Execute语句时,会出现此问题:

<% Server.Execute("/inc/top.inc"); %>

<% Server.Execute("/inc/footer.inc"); %>
Run Code Online (Sandbox Code Playgroud)

上面的.inc文件只包含html.看起来文件必须具有很长的长度才能导致错误.这是我一直在测试的示例html:

<div class="logo">
  <a href="/">
    <img src="/logo.png" alt="logo" width="31" height="29" class="logoimg" />
  </a>
</div>
<div class="logo">
  <a href="/">
    <img src="/logo.png" alt="logo" width="31" height="29" class="logoimg" />
  </a>
</div>
<div class="logo">
  <a href="/">
    <img src="/logo.png" alt="logo" width="31" height="29" class="logoimg" />
  </a>
</div>
<div class="logo">
  <a href="/">
    <img src="/logo.png" alt="logo" width="31" height="29" class="logoimg" />
  </a>
</div>
<div class="logo">
  <a href="/">
    <img src="/logo.png" alt="logo" width="31" height="29" class="logoimg" />
  </a>
</div>
<div class="logo">
  <a href="/">
    <img src="/logo.png" alt="logo" width="31" height="29" class="logoimg" />
  </a>
</div>
Run Code Online (Sandbox Code Playgroud)

此外,乱码字符显得不一致.如果我按Ctrl + F5页面,乱码字符会改变,偶尔也不会出现.

fra*_*lic 1

我们永远无法解决这个问题。

唯一有效的解决方案是消除 Server.Execute() 的使用。