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
Asp.net mvc IIS 7、MVC 3和网站/Web应用程序问题-更新:2011-04-21_Asp.net Mvc_Asp.net Mvc 3_Iis 7_Asp.net Mvc Routing - Fatal编程技术网

Asp.net mvc IIS 7、MVC 3和网站/Web应用程序问题-更新:2011-04-21

Asp.net mvc IIS 7、MVC 3和网站/Web应用程序问题-更新:2011-04-21,asp.net-mvc,asp.net-mvc-3,iis-7,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 3,Iis 7,Asp.net Mvc Routing,使用此帖子解决: 编辑:2011年4月21日(为了便于阅读,去掉了以前的代码,一些回复和评论来自旧帖子) 因此,我试图让我的新MVC3页面与IIS7一起工作 以下是我迄今为止采取的步骤: IIS: 1) 在IIS 7中创建新网站,并将其设置为使用.NET 4.0(集成模式) 网站: 1) 我刚刚安装了新的VS2010和MVC 3(3天前),这是我3天前从asp.net/MVC下载的MVC 3 2) 我创建了一个新的MVC3项目,文件->新项目->Asp.NETMVC3Web应用程序 现在,我将

使用此帖子解决:

编辑:2011年4月21日(为了便于阅读,去掉了以前的代码,一些回复和评论来自旧帖子)

因此,我试图让我的新MVC3页面与IIS7一起工作

以下是我迄今为止采取的步骤:

IIS:

1) 在IIS 7中创建新网站,并将其设置为使用.NET 4.0(集成模式)

网站:

1) 我刚刚安装了新的VS2010和MVC 3(3天前),这是我3天前从asp.net/MVC下载的MVC 3

2) 我创建了一个新的MVC3项目,文件->新项目->Asp.NETMVC3Web应用程序

现在,我将项目发布到一个文件路径(如c:\project\newtestmvcapp)

3) 我上传文件夹(newtestmvcapp)的全部内容,并使其生效

我现在从域中删除这些文件

4) 我上传项目路径中的普通文件。我上传除Bin、Obj和properties之外的所有文件夹

5) 我运行该页面,现在出现以下错误:无法加载类型“mvcapapplication1.mvcapapplication”

6) 我将CodeBehind更改为CodeFile,并得到以下错误:“mvcapapplication1.mvcapapplication”类型的声明缺少部分修饰符;存在此类型的另一个部分声明。公共类MVC应用程序:System.Web.HttpApplication

7) 我将此:公共类mvcapapplication:System.Web.HttpApplication更改为:公共部分类mvcapapplication:System.Web.HttpApplication

8) 现在我只得到一个错误,资源(例如,找不到索引或关于或任何其他页面)如果我上传一个test.htm它工作,如果我上传一个表单页面test.aspx它工作。只是不是MVC

编辑:我找到了一些关于网站和webapp应用程序之间区别的文章。这可能是原因吗?如果是这样,我如何将这个MVC3项目更改为一个网站(从而允许在运行时编译该项目)。VS2010中没有文件->新网站->MVC 3网站

我们希望能够上传一个新的视图或控制器到服务器,然后服务器应该为我们编译它。(测试/开发服务器)。

此:

在VS2010中,我在add name=“UrlRoutingModule”type=“System.Web.Routing.UrlRoutingModule,System.Web.Routing,Version=3.5.0.0,Culture=neutral,PublicKeyToken=31BF3856AD364E35”中得到了以下带红色下划线的“UrlRoutingModule”

似乎指出您正在使用
.NET3.5
System.Web.Routing
dll

既然您正在构建一个
mvc3
应用程序,那么我假设您使用的是
.net4
,对吗?如果是,这似乎表明您引用了错误版本的
System.Web.Routing

这是不是你转换成MVC 3的MVC 2应用程序


注意

这个答案经过大量编辑,与我的原始答案无关。我指出这一点是因为@Patrick对我的答案的评论可能会令人困惑。

试试这个:

以管理员身份打开命令提示符并插入以下文本:

如果您使用的是32位计算机: “C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet\u regiis.exe-i”

对于64位机器: “C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet\u regiis.exe-i”

如果不起作用,请尝试以下方法:

右键单击System.Web.Routing引用,转到属性并将CopyLocal设置为true


希望这能有所帮助。

我刚刚写了一篇关于这个问题的博客,虽然更多的是关于在现有的网站项目中集成MVC3,同样的规则也适用。您应该能够通过右键单击VS中的项目将Web应用程序转换为网站,菜单中应该有一个转换选项。
要在网站项目中运行MVC3,只需将Controllers and Models文件夹放在App_Code下即可

您的应用程序池中的.Net版本是什么?在IIS中,它显示Framework:4.0,Managed pipeline:Integrated,Identity:NetworkServices我添加了具有这些属性的网络服务,但我仍然得到了404。@Patrick-我对我的答案有了第二个想法,并对其进行了大量更新。不,我在VS2010中创建了一个新的MVC3项目,并上传了该项目。我还没有创建任何控制器/视图或任何与此相关的内容。我在下面的url中找到的路由例程:我还应该指出,我刚刚安装了.NET4框架,VS2010和MVC3。我们正在为我们的其他网站(IIS中的不同应用程序池)使用VS 2008、.NET 3.5和表单。为什么不在服务器上安装mvc3,这样您就有了一个坚实的起点,系统上已经实现了必要的更改?它是一个托管解决方案,而您不能吗?@Patrick-服务器上是否安装了.NET4?如果不是,您是否正在部署
System.Web.Routing
?它通常会出现在GAC中,所以VS默认情况下不会部署它,并且您仍然会遇到版本冲突的问题。这是对我的旧帖子的一个旧回复(其中我对我的意图不够清楚,对此我很抱歉)