2011年1月13日 星期四

【在 Windows XP Home Edition 上安裝 IIS 及相關設定】

天底下事情無奇不有,當然也會遇到XP Home Editon要跑IIS的情況.
雖然最後還是以升級成XPP來做結束,但還是記錄一下找到的資料.
最後得到一個體認,有些東西還是不要硬來的好.花時間又達不到效果.....

資料來源:http://fangsblog.pixnet.net/blog/post/21731807

1.準備 Windows 2000 Professional 光碟放入光碟機
2.準備XP Home Edition 安裝光碟的 i386 目錄 (可放在硬碟中)
3.編輯 C:\Windows\inf\sysoc.inf,
將: iis=iis.dll,OcEntry,iis.inf,hide,7
改成: iis=iis2.dll,OcEntry,iis2.inf,,7
(注意當中的 hide 一定要去掉,否則會看不到這個項目 )

4.複製 Win2K CD 的 I386\IIS.DL_ 和 IIS.IN_ 到暫存目錄(例如:c:\tmp),
並且以 DOS command 執行以下兩行指令,將之解壓縮展開:
expand IIS.DL_ iis2.dll
expand IIS.IN_ iis2.inf

5. 將上述解開的檔案分別複製到:
C:\Windows\inf\iis2.inf
C:\Windows\system32\Setup\iis2.dll


6. 開啟 控制台 -> 新增或移除程式 -> 新增移除 Windows 元件,
這時候就可以看到 Internet Information Services 的選項了!
按照需求勾選要新增的服務。建議先以 WWW 為主

7. 開始安裝後,會提示放入 Windiows 2000 的光碟,請指向光碟機的 I386 目錄。


8.當提示放入 XP Home Edition 光碟時,可以指向步驟 2 的 I386 目錄。
請注意,如果提示需要 IMS CAB (有安裝 SMTP 服務時),
並不是 Win2K 的檔案,而是 XP Home Edition 的 IMS.CAB。

9. 安裝完畢,先開啟「預設的Web 站台」→「內容」→「目錄安全性設定」
→點選「編輯」按鈕來變更匿名存取的設定→取消「允許IIS來控制密碼」的選項→連按數次確定即可

10.試著開啟 http://localhost

11.我的經驗, web 是啟動了,但是出現超討厭的HTTP 500 - 內部伺服器錯誤

12.檢查 DTC (Distributed Transaction Coordinator) service 狀態,試著啟動,若無法啟動,
請在command mode 執行以下步驟
cd %windir%\system32\inetsrv
rundll32 wamreg.dll, CreateIISPackage
regsvr32 asptxn.dll

執行完畢重新開機,並把 DTC 服務啟動


13.再試著開啟 http://localhost ,若還是出現 HTTP 500 ,開啟「事件檢視器」→「系統」,
看錯誤是否為事件ID: 10016,來源DCOM,是的話請依以下步驟修改


14. log中會有一段『....應用程式特定 權限設定無法將含有 CLSID {一長串機碼}....的 COM 伺服器應用程式的 本機 啟用 權限授予使用者 user_name』, 依照微軟官方文件,執行 regedit,找到 HKEY_CLASSES_ROOT\CLSID\{長串機碼},點選右邊名稱為『(預設值)』的『資料』為何。
像我自己電腦設定顯示的是「 IIS Admin Service」

15.打開「控制台」→「系統管理工具」→「元件服務」。
進入後點選「元件服務」→「電腦」→「我的電腦」→「DCOM 設定」→
打開14 步驟所述的值(IIS Admin Service ),按右鍵→「內容」

16.打開「安全設定」→「啟動和啟用權限」→
把log 中的 user_name 帳號加入,並給予適當權限(我是把本機/遠端的啟動/啟用權限全開了)

17.重新開啟 http://localhost .....終於大功告成。

18.若要執行 asp.net 的程式,也需依照以上14~15的步驟,
把本機的 ASPNET 帳號,設定對IIS Admin Service 元件有權限啟用。

2011年1月11日 星期二

asp中對ip進行過濾限制函數

資料來源:http://www.code-club.idv.tw/index.php?action=index&run=article_read&ClassID=3&ArticleID=1038


<%
'獲取訪問者的地址
ip=Request.ServerVariables("REMOTE_ADDR")


'允許的IP地址段為10.0.0.0?10.68.63.255
allowip1="10.0.0.0"
allowip2="10.68.10.71"

response.write checkip(ip,allowip1,allowip2)


function checkip(ip,allowip1,allowip2)
dim check(4)
checkip=false
ipstr=split(ip,".")
allow1=split(allowip1,".")
allow2=split(allowip2,".")
if cint(allow1(0))>cint(allow2(0)) then '判斷IP地址段是否合法
response.write "IP地址段出錯!"
exit function
end if
for i=0 to ubound(ipstr)
if cint(allow1(i))<cint(allow2(i)) then
if cint(allow1(i))=cint(ipstr(i)) then
check(i)=true
checkip=true
exit for
else
if cint(ipstr(i))<cint(allow2(i)) then
check(i)=true
checkip=true
exit for
else
if cint(ipstr(i))>cint(allow2(i)) then
check(i)=false
checkip=false
exit for
else
check(i)=true
checkip=true
end if
end if
end if
else
if cint(allow1(i))>cint(ipstr(i)) or cint(allow1(i))<cint(ipstr(i)) then
check(i)=false
checkip=false
if i<>ubound(ipstr) then
exit for
end if
else
check(i)=true
end if
end if
next

if (check(0)=true and check(1)=true and check(2)=true and check(3)=false) and (cint(allow2(2))>cint(ipstr(2))) then
checkip=true
end if

end function
%>

2011年1月10日 星期一

解決javascript的window.close()在IE7會有提示的問題

資料來源:http://blog.blueshop.com.tw/hent/archive/2008/01/04/53939.aspx

<script   language=javascript>
        window.opener=null;
        window.open("","_self");
        window.close();
</script>

2011年1月9日 星期日

64位Windows 2008連線Access資料庫錯誤的排除方式

64位Windows 2008連線Access資料庫錯誤的排除方式

 問題:ASP連接Access資料庫時顯示:找不到提供者。它可能未被正確安裝

解決方法:
1.執行->%SystemRoot%\SysWow64\odbcad32.exe,進行ODBC的相關設定.
2.把DefaultAppPool進階設定中的「啟用32位應用程式」設定為「True」

參考資源:
http://www.bisql.net/2010/08/32-bit-odbc-drivers-in-windows-server-2008-r2/