2

我正在使用 Web.Routing 做一些工作,使用它来获得友好的 url 和类似于站点的类似 Rest 的界面,该站点基本上由单个 IHttpHandler 呈现。没有网络表单,处理程序生成所有 html/json 并将其作为流程请求的一部分写入。

例如,这适用于 /Sites/Accounting 之类的东西,但我无法让它适用于站点根目录,即“/”。

我尝试使用“default.aspx”(这是我保存在根文件夹中的空 aspx 文件,以便与 cassini 和 iis 配合使用)注册一个带有空字符串的路由。我将 RouteExistingFiles 显式设置为 false,但无论我在点击根 url 时做什么,它仍然会打开 default.axpx,它没有继承的代码,并且包含一个简单的 h1 标记来表明我已经点击了它。

我不想更改默认文件以重定向到所需的路由,我只想要在没有找到其他路由时应用的“默认”路由的等效项,类似于 MVC。

作为参考,该站点的先前版本没有使用 Web.Routing,但在 web.config 中引用了一个处理程序,该处理程序完全能够拦截对 root 或 default.aspx 的请求。

规格:ASP.NET 3.5sp1、C#、无网络表单、MVC 或 openrasta。普通的旧 IHttpHandlers。

4

2 回答 2

0

我意识到这是一个非常老的帖子,但我只是在使用 VS2012 时遇到了同样的问题,所以我在这里发布这个以防万一。

我通过安装IIS Express并将项目设置为在 Visual Studio 中使用 IIS Express 解决了这个问题。解决了这个问题。

于 2012-09-10T11:32:43.407 回答
0

修复了我自己的问题:问题是集成的 Web 服务器、Cassini 或类似的。似乎它不能很好地使用路由,并且默认情况下会简单地返回 default.aspx 文件,或者,如果它丢失,则显示目录列表。

将 IIS 与虚拟目录一起使用可以正常工作,但很烦人(让代码共享者感到沮丧,因为他们在打开我的应用程序时需要设置新的虚拟目录,并且污染了我自己的 IIS 实例。呸。可能我现在要做的就是,或者手动设置一个新的应用程序,这样我就可以使用只有域名主机的路径,就像现场存在的那样。

另一种方法是使用更新版本的 cassini,见这里,如果 default.aspx 文件丢失,它可以工作,但我还没有弄清楚如何将它与 Visual Studio 集成。任何帮助将不胜感激,但鉴于我有解决方法,这不是一个重要的优先事项。

于 2010-04-05T04:33:36.013 回答