我正在从IIS6迁移到IIS7(集成模式)。 我有很多问题,但现在几乎所有的工作都是这样的: 当我在“/”或“/ test /”等网址上发布数据时,会显示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>
答案 0 :(得分:0)
我有类似的问题将旧网站从IIS6迁移到IIS7,我很确定这是一个web.config问题。
解决问题的最快方法是设置
<validation validateIntegratedModeConfiguration="true" />
在集成模式的有效web.config之前,它将抛出异常。
很多时候,对于IIS6有效的配置值未迁移到IIS7并隐藏
仔细检查模块和处理程序的定义,它们必须位于不同的地方:
在IIS6中,它们进入<system.web>
元素
在IIS7中,它们进入<system.webServer>
元素