果园和路线表
本文关键字:线表 果园 | 更新日期: 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文件夹。
只是为了让人们知道:原来有人把我们的错误处理模块从配方中注释了出来,忘记把它放回去,所以它试图重定向到一个不存在的错误页面,因为我们没有看到错误报告,因为我们的错误报告当时不能正常工作。