Asp.net mvc asp.net mvc应用程序根问题
我有一个ASP MVC应用程序,它部署在一个托管服务(discountasp.net)上的一个应用程序文件夹中,该文件夹是根应用程序的一个子文件夹。即:Asp.net mvc asp.net mvc应用程序根问题,asp.net-mvc,hosting,Asp.net Mvc,Hosting,我有一个ASP MVC应用程序,它部署在一个托管服务(discountasp.net)上的一个应用程序文件夹中,该文件夹是根应用程序的一个子文件夹。即: -/[root] -+/apps 根目录和应用程序都设置为IIS中的应用程序文件夹 当我点击默认页面时,出现错误“找不到视图“”或其主视图。搜索了以下位置” 当我将该应用程序部署到测试服务器上,并且我已经验证了所有内容都已正确部署、视图是否存在以及是否存在正确的程序集时,它就会工作。我认为MVC应用程序没有使用正确的应用程序根,因此无法找到查
-/[root]
-+/apps
根目录和应用程序都设置为IIS中的应用程序文件夹
当我点击默认页面时,出现错误“找不到视图“”或其主视图。搜索了以下位置”
当我将该应用程序部署到测试服务器上,并且我已经验证了所有内容都已正确部署、视图是否存在以及是否存在正确的程序集时,它就会工作。我认为MVC应用程序没有使用正确的应用程序根,因此无法找到查看页面
我已经阅读了很多关于这个错误的相关文章,但是没有一个典型的解决方案是我的问题:缺少视图文件,缺少主文件。这是在一台测试机上工作的,我已经尽可能地将它设置为与托管公司密切相关的位置。即使我有嵌套的应用程序文件夹
有没有关于如何纠正这个问题的想法 是“应用程序”是web文件夹层次结构的一部分,还是只是一个物理目录
对于前者:视图引擎将检查/views文件夹中的视图,而不是/apps/views。您可以修改(继承和替代)默认的web表单视图引擎,并告诉它在哪里可以找到视图,如中所示
我认为很有趣的是,每个人都在谈论MVC在请求-响应周期中为您提供了多大的能力,但我一直看到这些关于过程中非常重要的部分的问题,这些部分是完全模糊和不可配置的。我对MVC没什么印象。你知道运行的是哪个版本的IIS吗 在集成管道模式下,IIS 7将为您带来最佳效果 你可以在6分钟内跑,但你必须做一些工作才能让它跑起来 以下是几个有用的链接:
因此,要结束这个循环。最终的问题是两个独立的web.config文件,其中根web.config设置了我在子应用程序中没有删除的值。我删除了这些,一切正常。应用程序是一个物理目录,设置为应用程序目录。是的,我只是用一个简单的小应用程序评估MVC,不确定我是否购买了…这里有什么不可配置的?您可以根据需要更改视图位置,不是吗?请注意,VirtualPathProvider不是MVC,而是ASP.NET选项—这是MS决定保持与旧ASP.NET的兼容性(您似乎喜欢)。而且,我觉得没那么难;这个问题似乎有一个更简单的答案:什么是不可配置的?我不应该把我的类命名为“HomeController”、“FrakController”等等,而不是在我的应用程序上下文中有意义的名称。路由机制应采用类型引用,而不是字符串。我不需要创建一个新类来告诉MVC在哪里可以找到视图;它应该在一个配置文件中。(是的,我知道我自己可以做到这一点,但这需要更多的工作来绕过框架中愚蠢的假设)。还有,哦,是的-不能将特定于演示文稿的代码放在视图中代码隐藏?世界跆拳道联盟?那么框架“强制”设计模式?跛脚。这是IIS7在集成管道模式下运行。谢谢,这些链接间接地引导我找到了其他SO问题,最终回答了这个问题。如果我将应用程序部署到根目录下,它就会工作。如果它部署在应用程序中,而根目录中没有部署任何东西,那么它也可以工作。只要我把像default.aspx这样简单的文件放到根目录下,它就会停止工作。实际上,当我把web.config放到根目录下,它就会停止工作。