0

我正在从 IIS6 迁移到 IIS7(集成模式)。我遇到了很多问题,但现在几乎所有问题都可以正常工作:当我在“/”或“/test/”等 url 上发布数据时,会显示 Default.aspx,但 HttpRequest 对象上缺少发布的数据。如果我发布到“/Default.aspx”或“/test/Default.aspx”没有问题。在我的其他服务器(IIS7 也是)或我的本地服务器(IIS8)上都没有问题。我试图比较两台服务器上的处理程序配置,但没有发现任何差异。

这是我的测试页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<body>
    <form method="POST" action="">
        <p>
            <input type="text" name="text"/>
            <input type="submit" value="send" name="button"/>
        </p>
        <p>
            method: <%=Request.HttpMethod %>
            <br/>
            post: <%=HttpUtility.HtmlEncode(Request.Form.ToString()) %>
        </p>
    </form>
</body>
</html>
4

1 回答 1

0

我在将旧站点从 IIS6 迁移到 IIS7 时遇到了类似的问题,我很确定这是一个 web.config 问题。

最快的解决方法是设置

<validation validateIntegratedModeConfiguration="true" />

它会抛出异常,直到你有一个有效的 web.config 用于集成模式。

很多时候,对于 IIS6 有效的配置值未迁移到 IIS7 并隐藏

仔细检查模块和处理程序定义,它们必须位于不同的位置:

在 IIS6 中,它们属于<system.web>元素

在 IIS7 中,它们属于<system.webServer>元素

于 2013-02-25T17:03:56.247 回答