安裝MVC專案時自動給IIS新增萬用字元對映

2022-06-03 17:54:07 字數 3032 閱讀 3681

在iis6中安裝asp.net mvc專案時,需要將aspnet_isapi.dll新增到**虛擬目錄的萬用字元對映當中,很多時候我們需要手動完成。

這幾天弄了個asp.net mvc3的專案,寫完後做了乙個安裝部署程式,想安裝的時候能自動將aspnet_isapi.dll新增到虛擬目錄的萬用字元對映當中,於是寫了下面的vbs指令碼,指令碼支援將虛擬目錄當作引數傳遞進來,可以自動給虛擬目錄新增萬用字元對映。可以把這個指令碼另存為.vbs檔案,然後放到安裝類當中使用 system.diagnostics.process.start(vbsfile,virtualpath) 方法進行呼叫。安裝目錄可以使用/targetdir=[targetdir]取得,然後處理後獲得虛擬目錄名。

如何製作安裝專案及如何傳遞引數可以參考:

以下是vbs指令碼程式:

1option

explicit

2dim virtualpath

3dim msgtitle

4 msgtitle = "

新增指令碼對映"5

if wscript.arguments.length > 0

then

6     virtualpath = wscript.arguments(0)

7else

8     virtualpath = "

web"

9end

if10

11public

dim ovirtdir

13set ovirtdir = nothing

14on

error

resume

next

16set ovirtdir = getobject("

iis://localhost/w3svc/1/root/

" & virtualpath)

17if err <> 0

then

18msgbox

"未能建立 iis 管理物件!

" & vbcrlf & err.description,vbokonly&vbexclamation,msgtitle

19end

if20

ifnot ovirtdir is

nothing

then

21   maphandlers ovirtdir

22else

23msgbox

"新增對映失敗!

",vbokonly&vbexclamation,msgtitle

24end

if25

onerror

goto026

end function

2728

sub maphandlers(ovirtdir)

29  err.number = 0

30dim scriptmaps

31  scriptmaps = ovirtdir.getex("

scriptmaps

")32

if err <> 0

then

33msgbox

"未能獲取當前指令碼對映屬性。

"& vbcrlf & err.description,vbokonly&vbexclamation,msgtitle

34exit

sub35

endif

36dim imap

37dim sourcemap

38dim newmap

39  newmap = ""

40for imap = lbound(scriptmaps) to

ubound(scriptmaps)

41if

left(scriptmaps(imap), 6) = "

.aspx,

"then

42    sourcemap = scriptmaps(imap)43'

msgbox "found aspx: " & newmap

44end

if45

ifleft(scriptmaps(imap), 3) = "

.*,"

then46'

msgbox "已經新增了對映"

47exit

sub48

endif

49next

50if sourcemap = ""

then

51msgbox

"未能找到aspx指令碼對映

",vbokonly&vbexclamation,msgtitle

52exit

sub53

endif

54redim preserve scriptmaps(ubound(scriptmaps) + 1)

55  newmap = replace(sourcemap, "

.aspx,

", "

*,")

56  scriptmaps(ubound(scriptmaps)) = newmap57'

msgbox scriptmaps(ubound(scriptmaps))

58 ovirtdir.putex 2, "

scriptmaps

", scriptmaps

59if err <> 0

then

60msgbox

"儲存指令碼對映失敗!

" & vbcrlf & err.description,vbokonly&vbexclamation,msgtitle

61end

if62

63  ovirtdir.setinfo

64if err <> 0

then

65msgbox

"更新虛擬目錄資訊失敗!

" & vbcrlf & err.description,vbokonly&vbexclamation,msgtitle

66end

if67

end sub

6869

上面**的缺點是只能面對乙個站點的時候,如果安裝的時候伺服器有多個站點,**還需要進行改進。

IIS發布MVC專案

專案使用mvc4 ef6與另乙個mvc4 ef5的專案結合發布 問題1 發布時專案走了兩個webconfig 理想解決方案 刪除節點,不繼承節點 現實 經過文件,度娘,谷娘無解,最後降級ef版本解決問題 ef降級過程 ef5降級命令 問題2 發布後成功跑通報錯找不到網路路徑。好高階從來沒遇到的問題,...

IIS崩潰時自動抓取Dump

原文 iis崩潰時自動抓取dump 背景 在客戶現場,iis有時會崩潰,開發環境沒法重現這個bug,唯有抓取iis的崩潰是的dump檔案分析.iis崩潰時自動抓取dump,需要滿足下面幾個條件 1 啟動 windows error reporting service 服務 2 移除預設的偵錯程式 如...

win7下IIS配置MVC專案

第一步 新增mvc程式對映 1.雙擊開啟,如下圖 2.點選介面右邊操作中的 新增指令碼對映 請求路徑 可執行檔案路徑 c windows microsoft.net framework v4.0.30319 aspnet isapi.dll 名稱 mvc 最後點確定,彈出來對話方塊點否 第二步 右鍵...