设为首页 收藏本站
查看: 737|回复: 0

[经验分享] 安装MVC项目时自动给IIS添加通配符映射

[复制链接]
发表于 2015-8-13 08:20:49 | 显示全部楼层 |阅读模式
  在IIS6中安装ASP.NET MVC项目时,需要将aspnet_isapi.dll添加到网站虚拟目录的通配符映射当中,很多时候我们需要手动完成。
  这几天弄了个ASP.NET MVC3的项目,写完后做了一个安装部署程序,想安装的时候能自动将aspnet_isapi.dll添加到虚拟目录的通配符映射当中,于是写了下面的VBS脚本,脚本支持将虚拟目录当作参数传递进来,可以自动给虚拟目录添加通配符映射。可以把这个脚本另存为.vbs文件,然后放到安装类当中使用 System.Diagnostics.Process.Start(vbsFile,virtualPath) 方法进行调用。安装目录可以使用/targetDir=[TARGETDIR]取得,然后处理后获得虚拟目录名。
  如何制作安装项目及如何传递参数可以参考:http://kb.iyunv.com/page/73922/
  以下是VBS脚本程序:
  


1 Option Explicit
2 Dim virtualPath
3 Dim msgTitle
4 msgTitle = "添加脚本映射"
5 If WScript.Arguments.Length > 0 Then
6     virtualPath = WScript.Arguments(0)
7 Else
8     virtualPath = "Web"
9 End If
10
11 Public Function AppMap()
12  Dim oVirtDir
13  set oVirtDir = Nothing
14  On Error Resume Next
16  Set oVirtDir = GetObject("IIS://localhost/W3Svc/1/Root/" & virtualPath)
17  If Err <> 0 Then
18   MsgBox "未能创建 IIS 管理对象!" & vbCrLf & Err.Description,vbOKOnly&vbExclamation,msgTitle
19  End If
20  If Not oVirtDir Is Nothing Then
21   MapHandlers oVirtDir
22  Else
23   MsgBox "添加映射失败!",vbOKOnly&vbExclamation,msgTitle
24  End If
25  On Error GoTo 0
26 End Function
27  
28 Sub MapHandlers(oVirtDir)
29  Err.Number = 0
30  Dim scriptMaps
31  scriptMaps = oVirtDir.GetEx("ScriptMaps")
32  If Err <> 0 Then
33   MsgBox "未能获取当前脚本映射属性。"& vbCrLf & Err.Description,vbOKOnly&vbExclamation,msgTitle
34   Exit Sub
35  End If
36  Dim iMap
37  Dim sourceMap
38  Dim newMap
39  newMap = ""
40  For iMap = LBound(scriptMaps) To UBound(scriptMaps)
41   If Left(scriptMaps(iMap), 6) = ".aspx," Then
42    sourceMap = scriptMaps(iMap)
43    'MsgBox "Found aspx: " & newMap
44   End If
45   If Left(scriptMaps(iMap), 3) = ".*," Then
46    'MsgBox "已经添加了映射"
47     Exit Sub
48   End If
49  Next
50  If sourceMap = "" Then
51   MsgBox "未能找到aspx脚本映射",vbOKOnly&vbExclamation,msgTitle
52   exit sub
53  End If
54  Redim Preserve scriptMaps(UBound(scriptMaps) + 1)
55  newMap = Replace(sourceMap, ".aspx,", "*,")
56  scriptMaps(UBound(scriptMaps)) = newMap
57  'MsgBox scriptMaps(UBound(scriptMaps))
58  oVirtDir.PutEx 2, "scriptMaps", scriptMaps
59  If Err <> 0 Then
60   MsgBox "保存脚本映射失败!" & vbCrLf & Err.Description,vbOKOnly&vbExclamation,msgTitle
61  End If
62  
63  oVirtDir.SetInfo
64  If Err <> 0 Then
65   MsgBox "更新虚拟目录信息失败!" & vbCrLf & Err.Description,vbOKOnly&vbExclamation,msgTitle
66  End If
67 End Sub
68
69 Call AppMap  上面代码的缺点是只能面对一个站点的时候,如果安装的时候服务器有多个站点,代码还需要进行改进。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-98178-1-1.html 上篇帖子: IIS7 大文件上传 asp.net iis配置 下篇帖子: IIS应用程序池假死、自动重启以及iis权限等解决办法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表