MVC网站部署方案

MVC网站部署方案


 

前言:本方案是概述ESEarthServer项目在服务器上的部署方法、步骤,以及注意事项和遇到问题的解决方法。

开发环境:WIN XP 32+VS2010+.net framework 4.0+MVC4.0

部署环境:WIN SERVER 2008 R2 64+.net framework 4.0+IIS7.0


 

1、VS网站导出

1.1 首先在项目的引用中 找到如下 三个 程序集:

System.Web.Mvc  ,System.Web.Routing, System.Web.Abstractions

在以上三个dll引用上:右击》属性—-》复制到本地—-》设置为true

如图:

1.2. VS2010中导出网站

VS2010中编译好 Solution,然后在菜单栏选择Build——Publish Test(这里TestSolution名称)弹出如下窗口

 

网站存放在C:\inetpub\ESEarth,可以自己定义存放路径。生成如下图:

2、安装IIS

Windows Server 2008安装IIS

2.1右键点击“计算机”,在弹出菜单中选择“管理”选项,在服务器管理器左侧界面点击“角色”选项,点击“添加角色”按钮后,弹出如下界面

2.2、选择“角色”列表中的“Web服务器(IIS)”和“应用程序服务器”,点击“下一步”,弹出如下的效果界面:

  点击“添加必须的功能”按钮后,进行下一步操作:

  点击“下一步”

  点击“下一步”

  安装完成后,点击下图中的“关闭”按钮完成Web服务器的安装。

2.3 添加MVC的解析

4.1.1 IIS5.1,添加MVC的解析:

右击IIS中的虚拟目录选择属性”-“虚拟目录”-“配置”-“映射”-“添加,配置如下:

可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30196\aspnet_isapi.dll

扩展名:.*

动作:全部动作

脚本引擎:选中

检查文件是否存在:不选中

点击确定,最后如下图所示:

4.1.2 IIS6.0

设置“Web扩展服务中的“ASP.NET v4.0.0.30319”为允许,如下图所示:

IIS中发布网站,创建虚拟目录,ASP.NET版本选择4.0.30196

添加MVC的解析:

右击IIS中的网站选择属性”-“主目录”-“配置”-“映射”-“插入,配置如下:

可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30196\aspnet_isapi.dll

确认文件是否存在:不选中

点击确定,最后如下图所示:

4.1.3 IIS7

设置IIS“ISAPICGI限制中的“ASP.NET v4.0.0.30319”为允许,如下图所示:

编辑该网站的应用程序池,设置.NET Framework版本为4.0.30196

 

3、发布网站

3.1 查看【应用程序池】是否包含ASP.NET v4.0,ASP.NET v4.0 Classic

控制面板(查看方式:小图标)——管理工具(如图2——Internet信息服务(IIS)管理器(鼠标双击打开,如图3)——应用程序池(鼠标双击打开),

查看是否有图3中绿色框里的ASP.NET v4.0,ASP.NET v4.0 Classic,如果没有,说明Framework没有完全安装,这样种情况下发布的网站是无法访问的。

解决方法:

开始——cmd,在命令管理器里输入以下这样一串字符按Enter键即可:

 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i

                                  

                                                                   

3.2 发布网站

Internet 信息服务(IIS)管理器(鼠标双击打开,如图3)——选择【网站】鼠标右键单击,弹出菜单,选择【添加网站……】弹出图4窗口

编辑该网站的应用程序池,设置.NET Framework版本为4.0.30196

 

经过如上操作,网站就发布成功了

双击新建的网站test,选择右侧的【重新启动】,然后点击右侧的【浏览网站】下的【浏览192.168.19.19……】,就可以在浏览器中查看发布的网站了

3.3 关闭防火墙

发布了网站之后别的电脑(局域网)不能访问,ping不通,telnet也不通,原因是服务器开着防火墙,将服务器的防火墙关闭后问题解决。

 

4、遇到问题及解决方法:

4.1 网站发布后发现静态页面能访问,但是MVCAPI Controllers不能访问,原因可能可能是老版本的IIS没有添加对MVC的支持。

右击IIS中的虚拟目录选择属性”-“虚拟目录”-“配置”-“映射”-“添加,配置如下:

可执行文件:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30196\aspnet_isapi.dll

扩展名:.*

动作:全部动作

脚本引擎:选中

检查文件是否存在:不选中

点击确定,最后如下图所示:

4.2应用程序中的服务器错误

未能加载文件或程序集“ESEarthServer.DAL”或它的某一个依赖项。试图加载格式不正确的程序。

解决:

    将应用程序生成为 目标平台:Any CPU;

测试环境是笔记本 win7 64位,把iis应用程序池 --高级设置--启用32位应用程序:true

4.3 能调用api/GetObject,但不能调用api/DEMMeasure

调用api/DEMMeasure的时候,出现错误:无法加载DLL"TerrainAnalyze.dll",找不到指定的模块。

这是因为VS发布的时候漏掉了"TerrainAnalyze.dll",将TerrainAnalyze.dll文件手动拷贝到网站的Bin目录后问题解决。

又出现错误:返回结果是0.0

原因是测量工具需要指定DEM的路径,目前程序里面写死的路径是E:\ESEarthServer\demgup,此前这里面没有数据所以返回0.0。加入demgup数据后调用,返回成功

4.4 点击左边图层名,右边不显示信息

经测试,读取图层信息成功并成功返回。

发现问题:JS中运行到var str = $.query.get("Parameter");处的时候程序产生错误,判断是调用JQuery库出现问题。

问题解决:由于VS发布的时候漏掉了jquery.params.js文件,所以导致执行$.query.get("Parameter")语句的时候出错,程序立即退出。将jquery.params.js文件手动拷贝到网站的Scripts目录后问题解决。

4.5能调用api/GetObject,但不能调用api/Add

错误信息:xmlhttp.status 500   attempt to write a read-only database

解决办法:找到SQLite“数据库所在的文件夹”,单击右键,属性->安全,为Users用户组添加写入权限。

新错误:Unable to open the database file

解决方法:由于数据库只能读不能写,判断是数据库的权限的问题。通过将数据库的权限改为可读依然没能解决,原因是没有修改数据库所在的文件夹的权限。

注:添加权限可以给users用户添加写权限,也可以新添加"IIS_IUSRS"帐户然后为其添加写权限。(均是对文件夹的操作)

 

 

花了两周时间研究MVC的部署,现发布上来抛砖引玉,供大家参考学习,也供我自己学习,望大家多多指教。

由于CSDN发图片太麻烦,图文教材可以进我的资源里下载。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值