1

一个有趣的。

在一个由六名开发人员组成的团队中,我是唯一遇到以下问题的人,因此我们有理由确定这是我自己的本地问题,但我们似乎无法追踪导致它的原因。

使用基于 Orchard 的站点,使用 Route 提供程序覆盖默认主页:

public IEnumerable<RouteDescriptor> GetRoutes()
        {
            return new[]{
                new RouteDescriptor{
                    Name = "Homepage",
                    Priority = 85,
                    Route = new Route(
                        "",
                        new RouteValueDictionary{
                            {"area", "Area"},
                            {"controller", "BingoGame"},
                            {"action", "BingoRealm" },
                            {"realm", "realmName" }
                        },
                        new RouteValueDictionary(),
                        new RouteValueDictionary{
                            {"area", "Area"}
                        },
                        new MvcRouteHandler())
                },
                ...

但是,一旦我登录到应用程序(我希望被带到主页,就会发生以下错误:

路由表中没有路由与提供的值匹配。

说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息: System.InvalidOperationException:路由表中没有路由与提供的值匹配。

源错误:

Line 160:            public void EndProcessRequest(IAsyncResult result) {
Line 161:                try {
Line 162:                    _httpAsyncHandler.EndProcessRequest(result);
Line 163:                }
Line 164:                finally {

所以这里我们在某个地方建立了一条路线,但尝试访问该路线却没有找到任何东西。

正如我所提到的,只有我自己遇到了这个特殊的错误,我们想不出我的机器本地没有什么会影响这个问题。

解决方案?建议?问题?

4

2 回答 2

0

我见过一些失败的例子。这里有一些尝试:

尝试停止网络服务器实例并删除其中的Dependencies文件夹,App_Data然后重新启动它。在 Visual Studio 中编译后,有时 Orchard 会拒绝加载新程序集。

出现问题是因为程序集被锁定在依赖项文件夹中。因为开发服务器/IIS Express 在编译期间仍在运行,所以依赖项中的程序集不会被新的程序集替换。

可以通过停止 IIS express/Dev webserver 并再次运行项目来修复错误行为。如果您想在这里更加安全,请删除依赖项文件夹。

于 2013-06-15T07:58:21.160 回答
0

只是为了让人们知道:所以事实证明,有人从配方中评论了我们的错误处理模块并忘记将其放回原处,因此它试图重定向到一个错误页面,而该页面在我们不存在的问题上并不存在'看不到,因为我们的错误报告当时无法正常工作。

于 2013-06-17T08:05:22.807 回答