果园和路线表

本文关键字:线表 果园 | 更新日期: 2023-09-27 18:15:46

很有意思。

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

使用基于Orchard的站点,默认主页将被路由提供商覆盖:

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())
                },
                ...

然而,一旦我登录到应用程序(我期望被带到主页的地方),出现以下错误:

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

Description:当前web请求执行过程中发生未处理的异常。请查看堆栈跟踪以获得有关错误及其在代码中的起源的更多信息。

Exception Details: System。InvalidOperationException:路由表中没有匹配提供值的路由。

源错误:

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

所以这里我们有一个地方,建立了一个路由,但试图访问该路由,什么也没有找到。

正如我所提到的,只有我自己遇到了这个特殊的错误,我们可以想到我的机器上没有任何应该影响这个问题的本地因素。

解决方案?建议吗?问题吗?

果园和路线表

我看到过一些失败的例子。你可以试试:

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

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

错误行为可以通过停止IIS express/Dev web服务器并再次运行项目来修复。如果你想在这里更安全,请删除dependencies文件夹。

只是为了让人们知道:原来有人把我们的错误处理模块从配方中注释了出来,忘记把它放回去,所以它试图重定向到一个不存在的错误页面,因为我们没有看到错误报告,因为我们的错误报告当时不能正常工作。