环境: XP系统 及自带的iis5.1服务器
开发工具:vs2008,vb.net
插件: mvc
本人利用mvc自带的vb mvc asp站点的应用
创建一个工程,名为MvcSample
如果直接在Vs2008下运行,没一任何问题。但
直接把asp.net mvc 部署在iis5上,会出现无法显示页面的情况,
原因可能是路径映射没有起作用。会出现页面找不到错误。
1.打开应用根目录下 Global.asax文件 找到下面的映射配置
routes.MapRoute( _
"Default", _
"{controller}/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
)
稍微改动一下:增加.mvc
routes.MapRoute( _
"Default", _
"{controller}.mvc/{action}/{id}", _
New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _
)
2.控制面板打开IIS服务管理页面,打到本应用MvcSample,鼠标右右键,选择属性
:IIS站点属性=>目录=>配置=>映射=>添加=>可执行文件C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll 扩展名为:.mvc
动作可选全部,也可设定为:GET,HEAD,POST,DEBUG
选中脚本引擎
检查文件不要选择。
(如果发现确认按钮任为不可用状态,可执行文件输入框的浏览按锁,重新指定一下aspnet_isapi.dll文件,确定按钮就会可用)。
3. 执行应用
说明:按照mvc的路径规则,正常情况 按照第一步,应该在地址栏输入:
http://localhost/MvcSample/Home 或
http://localhost/MvcSample/Home/Index
而现在应该改为:
http://localhost/MvcSample/Home.mvc或
http://localhost/MvcSample/Home.mvc/Index
特此说明:如果发现图片无法显示,那就是路径的问题了,因为发布到iis上的网站,它的目录和你本地项目的目录有些不同。
用 <img src="<%= Url.Content("~/Content/Image/err.png) %>" style="width: 128px; height: 128px" />
这样路径问题ok。
如果你发现以前像<a href="/controllerName/actionName">这样的连接有问题时,就要改改了。
除过mvc内的一些转路径方法。因为你在global文件中的路径映射规则内添加了后缀名.mvc
所以现在你的< a href ="/虚拟目录名称/controllerName.mvc/actionName">
mvc项目发布成功了。
后记:
可以发现现在的路径有的怪怪的,
第一,多了个.mvc 第二根目录没有直接跳转。
并不像常用的那样。反正到此总算能发布成功了。
什么时候改成期待的http://localhost/MvcSample 的时候,
再进行追记吧。
实现: 在根目录下创建 Default.aspx文件,内容
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Default.aspx.vb" Inherits="MvcSample._Default" %>
<% Response.Redirect("~/Home.mvc")%>
OK