Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc asp.net mvc应用程序根问题_Asp.net Mvc_Hosting - Fatal编程技术网

Asp.net mvc asp.net mvc应用程序根问题

Asp.net mvc asp.net mvc应用程序根问题,asp.net-mvc,hosting,Asp.net Mvc,Hosting,我有一个ASP MVC应用程序,它部署在一个托管服务(discountasp.net)上的一个应用程序文件夹中,该文件夹是根应用程序的一个子文件夹。即: -/[root] -+/apps 根目录和应用程序都设置为IIS中的应用程序文件夹 当我点击默认页面时,出现错误“找不到视图“”或其主视图。搜索了以下位置” 当我将该应用程序部署到测试服务器上,并且我已经验证了所有内容都已正确部署、视图是否存在以及是否存在正确的程序集时,它就会工作。我认为MVC应用程序没有使用正确的应用程序根,因此无法找到查

我有一个ASP MVC应用程序,它部署在一个托管服务(discountasp.net)上的一个应用程序文件夹中,该文件夹是根应用程序的一个子文件夹。即:

-/[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放到根目录下,它就会停止工作。