พบกับบทความเกี่ยวกับคอมพิวเตอร์และ programming ได้ที่ http://articles.modoeye.com
ASP programming / IIS AND Apache
korakot_titla
korakot_titla
Sat 5 Jan 2008 14:55:21
คือตอนนี้ Server ของที่บริษัทผมเค้าใช้ Appache แล้วเขียนด้วยภาษา PHP แล้วผมตอนนี้ผมเขียนเว็บขึ้นมาโดยใช้ภาษา ASP ปัญหามีอยู่ว่าผมรัน IIS ไม่ได้ครับ ช่วยรบกวนอธิบายวิธีการให้ server สามารถรัน Appache และ IIS ด้วยนะครับ ซึ่งผมเคยไปอ่านเจอบทความมาจากที่หนึ่งผมจำไม่ได้ซึ่งก็ลองหามาหลายวันละแต่ก็หาไม่เจอนะครับ งานมันเร่งนะครับรบกวนทางพี่ๆทีมงานช่วยอธิบายให้ผมหน่อยนะครับ ขอบคุณมากครับ
webmaster
webmaster
Sat 5 Jan 2008 16:56:36
ถ้าเป็นบน Windows ถ้าไม่ได้ใช้คุณสมบัติของ apache เปลี่ยนไปเป็น IIS เลยดีกว่าครับ ทำงานเข้ากันได้ดีกว่าครับ ส่วนถ้าจะใช้ทั้ง 2 ร่วมกันก็ให้ทำงานกันคนละ port ครับ แล้วอาจจะให้ divert เมื่อมีการเรียกใช้ asp ไปที่ IIS อีกทีครับ ลองอ่าน document ของ Apache เกี่ยวกับ Redirect ดูครับ หรืออาจจะสร้าง alias ให้ไปทำงานบน IIS ก็ได้ครับ
korakot_titla
korakot_titla
Mon 7 Jan 2008 10:29:22

ผม่ไม่ค่อยเข้าใจนะครับ แต่ผมลองเปลี่ยพอร์ตดูแล้วนะครับ Appache ใช้ 80 ส่วน IIS ใช้ 81 แล้วผมลองรันดูตอนรัน iis ผมปิด service ทั้งหมดของ appache แล้วนะครับ แล้วเกิด error อย่างนี้ครับ

------------------------------------------------------

Under Construction

The site you are trying to view does not currently have a default page. It may be in the process of being upgraded and configured.

Please try this site again later. If you still experience the problem, try contacting the Web site administrator.


If you are the Web site administrator and feel you have received this message in error, please see "Enabling and Disabling Dynamic Content" in IIS Help.

To access IIS Help
  1. Click Start, and then click Run.
  2. In the Open text box, type inetmgr. IIS Manager appears.
  3. From the Help menu, click Help Topics.
  4. Click Internet Information Services.

Please try this site again later. If you still experience the problem, try contacting the Web site administrator.


If you are the Web site administrator and feel you have received this message in error, please see "Enabling and Disabling Dynamic Content" in IIS Help.

To access IIS Help
  1. Click Start, and then click Run.
  2. In the Open text box, type inetmgr. IIS Manager appears.
  3. From the Help menu, click Help Topics.
  4. Click Internet Information Services.

--------------------------------------------------------

ไม่ทราบว่าเพราะอะไรเหรอครับ รบกวนอีกทีนะครับ

ขอบคุณมากครับ

webmaster
webmaster
Mon 7 Jan 2008 11:08:53
มันแจ้งว่าก็ไม่มี default page คือไฟล์ index ครับโดยค่าเริ่มต้นของ IIS จะ index ไฟล์ default.htm, default.html

ทั้ง 2 ตัวสามารถทำงานร่วมกันได้ครับแต่ต้องทำงานคนละ port โดยให้ apache เป็นตัวทำงานที่ default port (80) แล้วเขียน Redirect condition ให้ทำการประมวลผลไฟล์ .asp ส่งไปที่ IIS แทนครับ

IIS ตัวเดียวจัดการง่ายกว่าเยอะเลยครับ
korakot_titla
korakot_titla
Tue 8 Jan 2008 09:44:01

รบกวนสอบถามครับ

คือ iis ของ window server 2003 มีความแตกต่างกับ iis ของ window xp ทั่วไปหรือป่าวครับทำไมผมลองแล้วนะครับสำหรับ iis ของ 2003 แต่ก็สามารถรันเว็บที่เป็นภาษา asp ได้บางหน้าแต่ตัวโปรแกรมไม่มีการ Error นะคับก็สามารถรันได้ปกติด  เราต้องไปทำการแก้ไข config อะไรบ้างหรือป่าวครับ ส่วน error ที่ผมให้ดูก่อนหน้านี้ที่ทางทีมงานบอกว่าไม่มีมีหน้า index หรือหน้า defalut ผมลองใส่ไปแล้วนะครับก็ไม่ได้แต่เปลี่ยน error เป็นอย่างอื่นแทนครับผมงงว่าทำไมมันใช้ไม่ได้ รบกวนหน่อยนะครับ ขอบคุณมากครับ

webmaster
webmaster
Tue 8 Jan 2008 10:28:41
IIS ของ WIndowsXP เป็น IIS5.1 บน Windwos2k3 จะเป็น IIS6 ที่แตกต่างมากๆคือ concurrent connection ซึ่งจริงๆเป็นข้อจำกัดของ OS คือ XP จะรองรับได้มากสุด 40 connections ส่วน 2k3 ถ้าจำไม่ผิด 64k connections ส่วนความแตกต่างของ IIS คือ IIS5.1 ไม่รองรับ Multi-site และ Thread Pool โดย default ต้องทำการ tune เอง แต่ IIS6 จะรองรับ Multi-site และ Thread Pool เป็นค่า Default

ที่ error ที่แจ้งมานั้น "The site you are trying to view does not currently have a default page" ซึ่งถ้า IIS ไม่ทำงานหรือไม่สามารถ connect IIS ได้จะไม่แสดงหน้านี้ขึ้นมาครับ การสร้างไฟล์ index เราสามารถระบุให้เป็นชื่อไฟล์อื่นๆก็ได้ครับ โดยการติดตั้งเริ่มต้นนั้นจะมี default path ไปอยู่ที่ C:\inetpub\wwwroot\ หรือลองตั้งค่าตามนี้ครับ http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/a9fc0395-f03b-4213-9c62-1592bcfcf53f.mspx?mfr=true

โดยปกติแล้ว IIS จะรองรับ asp ได้อยู่แล้วนะครับเพราะเป็น filter อยู่ใน ISAPI อยู่แล้ว ส่วนที่บาง app error นั้นไม่แน่ใจว่ามีการเรียกใช้ module อะไรที่ไม่มีในการติดตั้งปกติหรือไม่ เช่นพวก mail module ต่างๆนั้นต้องทำการ register ลงไปเอง ซึ่งเป็นข้อเสียของ asp
korako_titla
korako_titla
Tue 8 Jan 2008 14:30:57

ตอนนี้ผมคิดว่าน่าใช้ได้แล้วนะครับแต่ยังมีข้อสงสัยเกี่ยวกับ session ผมไม่แน่ใจว่าจะเกี่ยวกับ iis หรือป่าวนะครับ คือตอนที่ผมล็อกอินเข้าระบบแล้วผมกำหนดให้หน้านั้นเก็บค่าของ session ไว้ถ้าค่าของ session ว่างผมก็จะให้โปรแกรมเด้งออกมายังหน้าแรกของเว็บไซต์นะครับแต่นี่ผมล็อกอินเข้าไปแล้วก็เด้งกลับออกมาหน้าแรกทุกครั้งเลย แต่บางครั้งมันก็สามารถเข้าไปหน้าที่เราล็อกอินได้นะครับแต่พอกด refresh มันก็จะเด้งออกมายังหน้าแรกผมสันนิฐานว่าคงจะเกี่ยวกับตัว session นี้แน่เลยไม่ทราบว่ามันจะเกี่ยวข้องกันหรือป่าวครับ ขอบคุณมากครับ

webmaster
webmaster
Tue 8 Jan 2008 14:42:23
เกี่ยวกับ session ใน asp ผมก็เคยเจอเมื่อ 7-8 ปีก่อนเลยไม่ค่อยได้เล่นอีก อยากให้ลองทำการ debug ด้วย response.write ว่ามีค่า session ต่างๆมีอย่างถูกต้องหรือไม่ครับ
korakot_titla
korakot_titla
Tue 8 Jan 2008 15:38:27

ผมลองดูแล้วนะครับไม่มีเลยครับแต่ผมลองใช้

Server.ScriptTimeout = 90
Session.Timeout = 20
Session.LCID = 1033

อย่างนี้นะครับพอผมกด refresh 2-3 ครั้งมันก็หายไปเลยครับแล้วบางทีก็ไม่มี session ออกมาครับ ไม่รู้จะแก้ยังไงดีครับ จนปัญญาจริงๆ

แต่ผมลองไปอ่านบางบอร์ดเค้าให้แก้ DNS แต่ไม่ลงรายละเอียดว่าแก้ตรงไหนผมก็เลยงงแก้ไขไม่ได้สักที

webmaster
webmaster
Tue 8 Jan 2008 20:51:14
มันไม่น่าเกี่ยวกับ DNS หรอกครับ ลองตรวจสอบ โดยไปที่ Properties ของแต่ละ site ภายใต้ Home Directory จะมีปุ่ม Configuration ที่ Tab Option จะมีให้เลือก Enable Session State ครับ

ใส่ <%@ EnableSessionState=True %> ไว้ที่หัวไฟล์

korakot_titla
korakot_titla
Wed 9 Jan 2008 11:14:45

อีกหน่อยนะครับคือตอนนี้ที่สังเกตได้ถ้าเปน session ภายในหน้าเดียวกันมันจะไม่หายนะครับแต่ถ้าหากว่าเราส่งค่า session ข้ามหน้ามาใช้งาน session อันเดิมอีกในหน้าเพจใหม่พอกดรีเฟรสมันจะมาแล้วก็หายมาแล้วก็หายและบางทีก็มาครั้งเดียวแล้วกดรีเฟรสก็หายไปเลยไม่ทราบว่าเนื่องมาจากสาเหตุอันใดครับ

korakto_titla
korakto_titla
Wed 9 Jan 2008 11:54:22

เครื่อง client ของผมที่ใช้จำลองเป็น webserver เปน iis version 5.1 ส่วนในเครื่อง server ใช้ iis version 6 ไม่ทราบว่าข้อนี้หรือป่าวครับที่มีความแตกต่างกันทำให้มันผิดเพี้ยนอย่างนี้

korakot_titla
korakot_titla
Wed 9 Jan 2008 15:00:25

เพิ่มเติมครับใน Server ใช้ iis และ Appache ไม่รู้ว่าจะเกี่ยวกับ session นี้หรือป่าวนะครับ

korakot_titla
korakot_titla
Wed 23 Jan 2008 13:40:56

ผมลองใส่ <%@ EnableSessionState=True %> ไว้ที่บรรทัดแรกของเพจนั้นๆแล้วนะครับก็ยังเหมือนเดิม ผมลองใส่โค้ด counter ดูโดยนับ session ดูนะครับแล้วกด refrest ดูปรากฏว่ามันไม่จำค่าหรือว่ามันจะสตาร์ทใหม่ผมก็ไม่แน่ใจตัว counter ก็จะขึ้นเรื่อยๆนะครับ และบางทีมันก็ไม่ขึ้น ผมสงสัยว่ามันเกิดจากอะไรกันแน่ครับ

webmaster
webmaster
Wed 23 Jan 2008 16:25:03
อืม ผมลืมตอบกระทู้ของคุณไปต้องขออภัยด้วยครับ จำได้ว่าเปิดหาวิธีแก้ไขให้อยู่แต่ลืมได้ไงไม่รู้ ขออภัยจริงๆครับ

ลองเข้าไปที่ IIS manager คลิ๊กขวาที่ site ต้องการเลือก properties ภายใต้ Home directory คลิ๊กที่ configuration ดูที่ tab Options ติ๊กที่ Enable Session State แล้วเลือกเวลาสำหรับ session ตามต้องการครับ

ปกติจะถูกเปิดให้ใช้งานอยู่แล้วนะครับ
korakot
korakot
Wed 30 Jan 2008 11:40:45

รบกวนสอบถามหน่อยนะครับ คือผมติดต่อฐานข้อมูลไม่ได้ซึ่งผมลงใช้โค้ดเดียวกันแล้วก็ลองติดต่อฐานข้อมูลในเครื่องผมที่จำลองเปน web server ก็สามารถใช้ได้นะครับ แต่พอเรา up ขึ้น server (ในบริษัท) ไม่สามารถติดต่อได้ มี error ดังนี้ครับ

--------error server ใน บริษัท--------------------

 Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x13f0 Thread 0x8b8 DBC 0x1931024 Jet'.

/Database/Connection.asp, line 5

-------------------------------------------------------------

ส่วนในเครื่องตัวเองไม่มี error สามารถต่อได้ตามปกติด

----------------------------------------------------------

โค้ดที่ใช้ในการติดต่อฐานข้อมูลครับ

  Set Conn=server.createobject("ADODB.connection")
  Conn.open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="&Server.Mappath("DataBase\IT_Sec_Information.mdb")----บรรทัดที่ 5 ที่ฟ้อง Error
  Set rs=Server.CreateObject("ADODB.Recordset")

------------------------------------------------------------------------

ซึ่งผมก็ลองแก้ไขการติดต่อกับฐานข้อมูลแล้วนะครับลองใส่ path ที่ตรงๆเลยก็ไม่ได้ผลก็ error เหมือนเดิมเลยครับ ไม่ทราบว่าเพราะอะไรเหรอครับ หรือว่า server ที่บริษัทเกิดปัญหาครับ รบกวนหน่อยนะครับ คือตอนนแรกก็ใช้ได้ดีนะครับสำหรับโค้ดที่บอกไปแต่พอแก้ไปแก้มากลายมาเป็นอย่างนี้เลยงงเลยครับทั้งที่ผมไม่ได้ไปแก้ config อะไรของ server เลยครับ รบกวนหน่อยนะครับ ขอบคุณมากครับ

webmaster
webmaster
Wed 30 Jan 2008 12:48:25
ต้องตั้ง permission ให้กับ IUSR ให้สามารถเข้าถึงไฟล์ฐานข้อมูลและ %temp% ด้วยครับ เนื่องจาก IIS จะใช้สิทธิ์ IUSR ในการรัน web application ครับ
korakot
korakot
Wed 30 Jan 2008 14:07:14

ขอบคุณมากครับ

เด็กฝึกงาน
เด็กฝึกงาน
Wed 19 Mar 2008 10:25:20
คือ อยากจะสอบถามหน่อยนะค่ะคือ เริ่ม เขียน ASP ครั้งแรก เลยอยากจะทราบว่าเวลารัน ASP รันยังไงอ่ะค่ะ คือเขียนใน dreamwever แต่พอทราบมาบ้างว่าให้ลง iis ก่อน แล้วเอาไปไว้ใน C:\Inetpub\wwwroot แล้วเมลารันให้เปิด internet expoler มาแล้วพิมพ์ http://local-host/ชื่อไฟล์ที่จะรัน .asp แต่ลองทำแล้วมันไม่ออกน่ะค่ะ เลยอยากจะทราบว่ามันรันแบบที่ว่าหรือเปล่าค่ะ หรือว่ามีวิธีอื่นที่สามารถทำได้อีกหรือเปล่า รบกวนด้วยค่ะ  
webmaster
webmaster
Wed 19 Mar 2008 13:53:52
localhost ครับไม่ใช่ local-host หรืออาจจะใช้ loopback ip (127.0.0.1) แทนก็ได้ครับ
เด็กฝึกงาน
เด็กฝึกงาน
Wed 19 Mar 2008 14:55:28
ผิดแค่ localhost ช่ายไหมค่ะ เด๋วลองรันอีกที ขอบคุณค่ะ
Reply
Name:
E-mail:
Home | Services | Forum | Classified | Directories | Support | Contact
ATOM feed RSS 0.9 feed RSS 1.0 feed RSS 2.0 feed
Copyright © 2005 - 2007 Modoeye.com, All Rights Reserved.
Disclaimer | Privacy policy | Term of Use | Term of Services
Valid XHTML Valid CSS! PHP: Hypertext Preprocessor MySQL database Apache Powered! FreeBSD Power to serve
Modoeye Sitemap Client login