2009-10-12 40 views
3

我只有这个错误有时(显然是随机的,但我知道在电脑里真的没有这样的东西)。我正在使用VS 2008中的MVC(release 1)站点。该机器正在运行带有IIS 7的Windows 7,但是此实例正在VS(Cassini?)内置的Web服务器下运行。MVC:“传入的请求不匹配任何路由。” - 与一个默认请求

httpHandler.ProcessRequest(HttpContext.Current); 

异常的方法是:: 传入的请求没有当我做一个F5开始运行它,我有时会在Default.aspx.cs的Page_Load方法四号线得到一个异常陷阱匹配任何路线。

检查HttpContext.Current.Request对象显示的路径是“/”,rawUrl是“/Default.aspx?” - 即,您对网站的正常空请求。

除了一对IgnoreRoutes行(忽略“pics/{* imgfile}”,忽略“{* favicon}”),MapRoutes例程几乎是标准的。 Application_Start例程具有StructureMap的配置,并且在调用RegisterRoutes之前调用SetControllerFactory,但是它是标准的。

通常,如果我重新启动VS,问题就会消失。 (并且几乎总是如果我重新启动机器)。

任何线索?

谢谢。

+1

IIS6或7呢?卡西尼? – annakata 2009-10-12 19:01:06

+0

我已经收集了一些更多的输入信息,并找出了发生这种情况的原因(它并不是随机的)。但我仍然没有得到连接。 如果我尝试在VS中调试程序并且SQL服务器没有在我的机器上运行,程序在StructureMap中引发异常,这是可以理解的和可以预料的。如果我停止调试器,启动SQL服务器,然后重新运行该程序,即发生这些错误时。 我仍然没有得到连接,但至少我知道该怎么做才能阻止它的发生(关闭VS,启动SQL服务器并重新启动)。 – 2009-10-23 18:29:00

+0

戴夫 - 你有没有想过是什么原因造成的?我有完全相同的事情发生在我身上。我在Global.asax中设置了一个断点:Application_Start() - 断点没有被命中。 – 2010-11-02 17:17:32

回答

1

设置默认页面。 asp.net中的F5将启动到任何页面被选中。但是,由于在MVC中,您的视图可能会或可能不具有关联的控制器功能,它可能会尝试调用不存在的操作。打开您的项目属性并将调试开始页面设置为您的站点主控制器操作。

+0

罗素, 感谢您花时间回复。 有一个默认页面集,它是正在运行并抛出异常的默认页面(Default.aspx.cs)的标准代码隐藏。有一个开始项目集,并且存在所有的操作,特别是默认操作(controller = home,action = index)。由于这种情况大部分时间都在运行,并且只是间歇性地失败,所以很难看出这可能是什么问题。 – 2009-10-15 14:06:38

0

对不起,我可怜的英语......

我也有这个问题呢!神奇地,调用路由的方法Application_Start在Global.asax中消失了!

vb.net:

Sub Application_Start() 
    RegisterRoutes(RouteTable.Routes) 
End Sub 

把这种方法在Global.asax中,如果不存在

相关问题