今天,小白来总结一下我在is上部署mvc3 .net 网站的时候的过程和遇到的问题。
其实,mvc的网站的部署跟平常的网站的部署都是一样的,只是下面有一些需要注意的地方。
1.应用程序池采用集成模式(建议),.NET Framework版本为: .NET Framework4.0.30319。
2.确保在服务器上ASP.NET MVC3已安装好,然后检查站点的处理程序映射,看是否存在下列三个的映射:
ExtensionlessUrlHandler-Integrated-4.0
ExtensionlessUrlHandler-ISAPI-4.0_32bit
ExtensionlessUrlHandler-ISAPI-4.0_64bit
如果缺少请在运行中输入:C:WindowsMicrosoft.NETFrameworkv4.0.30319aspnet_regiis.exe -i
2.在已安装ASP.NET MVC的机器找到以下文件(32系统则在C:Program FilesMicrosoft ASP.NET目录),把它们复制到部署机器的BIN目录下就OK了! (注意: 主机IIS要安装ASP.NET 4.0,网站也要使用ASP.NET 4.0)
C:Program FilesMicrosoft ASP.NETASP.NET Web Pagesv1.0Assemblies
System.Web.Helpers.dll
System.Web.Razor.dll
System.Web.WebPages.dll
System.Web.WebPages.Razor.dll
System.Web.WebPages.Deployment.dll
Microsoft.Web.Infrastructure.dll
C:Program FilesMicrosoft ASP.NETASP.NET MVC 3Assemblies
System.Web.Mvc.dll
当上面的操作都已经完成的时候,应该大体上就完成了部署了。如果出现Isapi 和 cgi限制的问题,可以通过到根目录下面,修改isapi和CGi限制来解决。(为网站对应的地址池进行启动操作)
但是小白按照这样的操作过程完成之后,报当访问转换成应用程序的网站的时候,仍然会报401的错,有的时候是401.1,有的时候是401.2,或者会出现access denied这样的提示消息。原来以为是目录权限的问题,所以,给了项目文件夹最高的操作权限,但是仍然报错,按照401错误的解决办法一步步的去操作,但是仍然是没有解决这个问题,最后,才明白这个权限问题也有可能是配置文件中引起的。下面是设置用户访问权限.
<authorization> <!--设置为允许所有用户访问--> <allow users="*"/> </authorization>
<authorization> <!--设置为匿名用户,也就是没有登入的用户不能访问--> <deny users="?"/> </authorization>
<authorization> <!--设置为拒绝所有用户访问--> <deny users="*"/> </authorization>、
Windows XP 上只能运行IIS5.1,你的ASP.NET MVC程序可能基于.NetFramework 2.0, 3.0, 3.5, 4.0....不管几点几都没关系,假设你用的是MVC3,基于.NetFramework 4.0,则按以下步骤操作:
Step1.进入命令行,注册ASP.NET IIS
cmd => cd "C:WINDOWSMicrosoft.NETFrameworkv4.0.30319" (具体路径由你的.NetFx决定)
aspnet_regiis -i
Step2.建站,过程不讲了。
Step3.建站以后,进入"属性|ASP.NET"选项卡,在Asp.Net Version的列表中就可以看到刚刚注册的ASP.NET 版本了,选择你需要的版本(注:假如不经过Step1,你会发现在ASP.NET Version列表中只有2.0.50727)。
Step4:进入“主目录”选项卡=>添加。
可执行文件:选择C:WINDOWSMicrosoft.NETFrameworkv4.0.30319aspnet_isapi.dll(根据你系统的运行环境而定,也可以是是.NetFx3.5)
扩展名:.*(具体按你自己的需求而定,比如Razor视图引擎.cshtml)
检查文件是否存在:不要打钩。
如果“确定”按钮是灰色不可用的,鼠标点击一下“可执行文件”的文本框(算是个小bug)
进过以上步骤,看看你的程序是不是可以运行起来了。
在vs中打开mvc3项目,虽然装了mvc3,但是还是会遇到莫名其妙的错误,这是我在做开发的时候遇到的一个问题,附带解决方案,和大家分享一下
问题描述:无法打开项目文件“E:/我们的项目/Project/HeatingMIS.Web/HeatingMIS.Web.csproj”。
解决方案:右键单击未加载的项目,选择编辑.csproject,找到<ProjectTypeGuids>节,会发现此节包含三个带{}的GUID,接着要做的是将前两个GUID替换为
{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};然后保存,重新加载项目即可
最后一个是项目本身的GUID不用改。