【问题标题】:Funny ASPX handling by IIS?IIS 处理有趣的 ASPX?
【发布时间】:2010-10-14 13:38:57
【问题描述】:

[这在 serverfault 上可能会更好,如果是这样,我会把问题移到那里 - 但我认为这里有更多的 asp.net 开发人员,所以其他人看到这种行为的可能性更大] em>

我一直在尝试追踪 IIS 中控制此行为的 .NET 设置,但没有运气...

简而言之,我们有一个运行 IIS7 的 Server 2008 R1 机器。当我们导航到表单的 URL:http://server/path/webpage.aspx/webpage.aspx 时,它会正确处理页面并返回正确的响应。如果我尝试使用静态 HTML 页面或 ASP 页面,我会得到 404(预期)。

似乎对重复级别没有限制...http://server/path/webpage.aspx/webpage.aspx/webpage.aspx/webpage.aspx 的所有运行都好像我们一开始就转到了正确的 URL(即,只是一个网页.aspx)。

这是(或至少应该是)IIS 的默认配置。有人知道我们是否有一个以某种奇怪方式调整过的盒子吗?

编辑/回答问题 [最后编辑 @ 16:55]:

  • 使用 .NET 2.0
  • IIS 应用程序池配置为“经典”管道
  • IIS 配置为匿名访问;使用经典(旧版)ASP 前端进行身份验证
  • 这是一个混合应用:我们有许多旧版 ASP 元素以及几个 ASP.NET 元素。
  • 未使用自定义 HTTP 模块

这最终不会导致功能上的问题:但这确实意味着日志分析被取消了,如果我们可以关闭这种(相当意外的)行为,它会很有用。

【问题讨论】:

  • 您是否使用任何自定义 HTTP 模块?
  • @David - 否 [相应更新问题]

标签: asp.net iis-7 windows-server-2008


【解决方案1】:

这不是 IIS7 特定的,而是 IIRC ASP.NET 工作方式的一个特性:由第一个 .aspx 标识的脚本将处理请求,并获得一个 /webpage.aspx 作为 Request.PathInfo;这将发生在任何以 ASP.NET 页面名称之后的 / 开头的东西上,例如 .aspx.asmx 页面。所以下面的url也由webpage.aspx处理:http://server/path/webpage.aspx/foobar

如果您查看.asmx Web 服务,您会发现示例请求使用这样的网址:http://server/path/service.asmx/WebMethodName

【讨论】:

  • 啊...'k。重复的 ASPX 名称是一个红鲱鱼。只是在 / 之后丢弃了随机的东西,是的,它忽略了它(因为我们不使用 PathInfo)。塔 :-)
【解决方案2】:

您需要提供更多信息:

1) ASP.NET 版本

2) IIS 应用程序池,是集成的还是经典的

3) 不使用身份验证、Windows 身份验证或表单

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多