0

我有一种情况,我们正在汇总来自 N 个客户的营销数据,其中客户可以使用他们选择的任何后端托管 HTML 表单,每个表单的操作都指向我们正在使用的路径托管。每个客户端都有不同的 URL,没有身份验证(但对数据进行了一些简单的验证),并且通常一切正常。

然而,有一个小皱纹我似乎无法理解。

处理提交数据的 aspx 位于一个路径中,我们称之为 ~/submit/default.aspx。我们的想法是,我们应该能够向我们的合作伙伴提供一个类似于“ http://sample.com/submit/?foo=bar ”的 URL 作为他们表单的操作。但是,这样做会导致 HTTP 405 错误,“资源不允许”。

但是,将表单的操作设置为“ http://sample.com/submit/default.aspx ”可以正常工作。

  • Default.aspx 设置为 IIS 6 中的默认文档名称之一。
  • .aspx 文件扩展名已正确映射到正确的 .Net dll,并为映射激活了动词 GET、HEAd、POST 和 DEBUG。

这是我唯一能想到的首先要仔细检查的两件事——其他人有什么想法吗?我更喜欢使用 IIS7 的 URL 重写/路由,但不幸的是,这不是一个选项——而且我有许多额外的要求,其中“干净”的 URL 将非常可取,所以解决这个问题将是一个相当不错的选择要解决的核心问题。

4

3 回答 3

1

IIRC,如果请求的资源是目录,IIS 将仅使用默认文档。由于第一种情况下请求的资源不是,它永远不会通过默认的文档处理程序 - 而是在 POST 到未注册的脚本扩展 (405) 时失败。

于 2009-01-31T00:38:54.480 回答
0

出于某种原因,它没有呈现我的代码示例!你们需要为您的“您的答案”文本框解码和编码小于和大于符号......无论如何,

<httpHandlers>
<add verb="your.class.to.handle.doc.files"/>
</httpHandlers>

是您的 web.config 文件中应该包含的内容。

于 2010-03-09T22:25:53.113 回答
0

它可能取决于“ http://sample.com/submit/?foo=bar ”的文档类型...如果您的 IIS 不知道如何处理返回给它的文档类型(然后将其返回给你,客户端),那么你可能会收到一个 http 405 错误 - 这意味着它不知道如何处理该文档类型,服务器方面。也许尝试在驱动应用程序的 web.config 文件中放置类似的内容。HTTP 处理程序是模块化的代码片段,用 .net 语言编写和编译,如果您熟悉 Java 术语,它可以充当一种“servlet”。这是一段向客户端写出某些内容的代码——在您的情况下,可能是 .doc 文件的呈现,以编程方式在您的处理程序类中找到。

于 2010-03-09T22:21:40.857 回答