当站点发布到远程主机时,ASP.NET路由不会触发

时间:2010-02-05 15:57:27

标签: asp.net asp.net-mvc webforms

我有一个最初用webforms编写的网站,我添加了MVC功能。在本地调试时它工作正常,但是,一旦发布并上传到我的主机,路由不起作用并返回404。 我很确定我已经上传了所有正确的文件。只是看起来路由不起作用。

有什么想法吗?!

(该网站仍然可以正常提供普通的aspx页面)

我认为问题可能与Mixing ASP.NET MVC into ASP.NET WebForms

有关

但我无法从那个帖子中看出解决方案是什么。看起来它可能与app_pool模式有关 - 但我在集成模式下运行,这是正确的AFAIK

更新2

所以我认为我的路由工作正常。我基本上创建了一个新的MVC应用程序并逐行浏览了web配置文件并确保我拥有所需的一切。有趣的是,在线教程都没有提到你需要做的正确添加。嘿嘿.. 我还有另一个问题,请你...... 当我加载我的mvc页面时,我收到了以下消息: SessionStateTempDataProvider要求启用SessionState。

我在web.config中添加了一行来启用会话(不知道它们已关闭)但它仍然无法正常工作。

UPDATE 我创建了一个新的asp.net MVC项目,并最终逐行浏览web.config并确保与我的混合应用程序中包含的所有与MVC相关的内容。可以说,没有一个指南提到所需的所有设置(我使用的是专业的asp.net mvc 1.0)。然后我包含了未发布的global.asax文件并设置了一个路由,以便MVC没有捕获/的请求。我还必须在web.config中启用会话。

现在它有效!

我应该将这个问题标记为答案......不确定协议在这里:)

1 个答案:

答案 0 :(得分:1)

我正在经历同样的事情,因为我使用编译的视图进行部署。我不知道为什么但是我上传的Release文件夹中没有包含global.asax。我只是觉得它被编译成一个DLL。我的所有内容都是404,所以我尝试上传global.asax,网站变得生动起来。