一个有趣的。
在一个由六个开发人员组成的团队中,我是唯一一个遇到以下问题的人,所以我们有理由相信这是我本地的事情,但我们似乎无法追查导致它的原因。
使用基于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())
},
...
但是,一旦我登录到应用程序(我希望将其带到主页,就会出现以下错误:
路由表中没有路由与提供的值匹配。
描述:在执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息: System.InvalidOperationException:路由表中的路由与提供的值不匹配。
来源错误:
Line 160: public void EndProcessRequest(IAsyncResult result) {
Line 161: try {
Line 162: _httpAsyncHandler.EndProcessRequest(result);
Line 163: }
Line 164: finally {
所以在这里,我们有一个地方建立一条路线,但试图访问该路线并且找不到任何东西。
正如我所提到的,只有我自己遇到了这个特殊的错误,我们可以想到我的机器本身没有任何应该影响这个问题的东西。
解决方案?建议?有问题吗?
答案 0 :(得分:0)
我见过一些失败的例子。这里有一些尝试:
尝试停止Web服务器实例并删除Dependencies
中的App_Data
文件夹,然后重新启动它。有时Orchard在Visual Studio中编译后拒绝加载新程序集。
发生此问题是因为程序集被锁定在依赖项文件夹中。由于dev server / IIS Express在编译期间仍在运行,因此依赖项中的程序集不会被新的程序集替换。
可以通过停止IIS express / Dev webserver并再次运行项目来修复错误行为。如果您想在此处更安全,请删除依赖项文件夹。
答案 1 :(得分:0)
只是为了让人们知道:事实证明有人已经将我们的错误处理模块从配方中删除了,并且忘记将其重新放入,因此它试图重定向到一个不存在的错误页面我们没有看到的问题,因为我们的错误报告当时没有正常工作。