Tuesday, March 24, 2009

ASP Script time out

ตั้งค่ายืนเวลา time out ออกไปให้ asp script

# วันก่อนเอาโค้ดเพื่อนมาแก้ เค้าเขียนเกี่ยวกับ asp ธรรมดา คือ เราเลือก asp นั้นแล้วส่งค่าผ่าน html form ตัว asp ก็จะไปเรียก web service ซึ่งอยู่ server คนละตัวกัน อีกต่อหนึ่ง แล้ว web service ก็ทำการ insert ข้อมูลลงฐานข้อมูลอีกทอด

# การส่งค่าแบบ การเรียก web service ของ asp แล้วรับค่าจาก service ค่อนข้างมีปัญหาตอน asp script ทำการสร้าง loop ส่งค่าเรียก web service แล้วรอรับผลรับจนออกจาก loop

# ถ้าข้อมูลไม่มากก็ไม่มีปัญหาอะไร asp สามารถออกจาก loop และ แสดงผลให้ browser client ได้

# แต่ถ้าข้อมูลมาก ต้อง loop หลายรอบมากๆ ทำให้ iis ที่รัน asp ส่ง time out กับมาให้ client browser แง๋ว



# ข้อมูลที่ service รับไปก็ลง ฐานข้อมูลไม่ครบเพราะ time out ระหว่าง iis + asp script กับ client browser ก่อนหว่า

# แต่ใจ error time out ก็ชี้แจงวิธีการแก้ปัญหามาให้เราอยู่

You can change this limit by specifying a new value for the property Server. ScriptTimeout or by changing the value in the IIS administration tools.

# เราสามารถแก้ได้โดย แก้ properties ของ virtual host ที่รัน asp แก้โดยเพิ่มเวลา time out ออกไป



# โดยค่าเริ่มต้นจะเป็น 90 second อันนี้น่าจะเป็นค่าที่ตาม defualt web site ของ virtual host นั้น

# เราก็แก้ให้มากขึ้นไง ^^' แต่ก็ไม่รู้เหมือนกันถ้าเราทำประมาณนี้ จะเกิดปัญหาอาไรที่เราคาดไม่ถึงก็เป็นได้หรือป่าว

ตัวอย่างโค้ด asp เรียก web service ของ .net

provWSDL = "http://servicehost/webservice1/service.asmx?wsdl"
Set service = CreateObject("MSSOAP.SoapClient30")
service.ClientProperty("ServerHTTPRequest") = True
Call service.MSSoapInit(provWSDL)
xmlMessage = "<request><task>....various xml</task></request>"

result = service.webMethod(param...)

Response.Write(" Result from WebMethod >>"&result)

# แต่เครื่องที่รัน asp ที่ทำการเรียก web service ของ .net หรือ ค่ายอื่นๆ ต้องติดตั้ง soapsdk.exe ด้วยเห็นเพื่อนรักษ์ เค้าว่างั้นนะ อันนี้ก็ไม่รู้เรา จำเค้ามาอีกที

# อีกอย่างหนึ่ง ถ้าจะส่งข้อมูลที่อยู่ใน db หนึ่ง มาที่ db2 เราน่าจะส่งแบบ dataset หรือ datatable จะดีกว่าส่งแบบ string มาทีละ row นะเพื่อนเค้าว่างั้นหว่า เราก็ไม่รู้เหมือนกันว่า ถ้าข้อมูลใน datatable เยอะ จะส่งผลทำให้ time out เหมือนกันปะนะ

# คิดไปคิดมา แล้วทำไมต้องใช้ asp ติดต่อ web service ด้วยน้า

No comments:

Post a Comment

Popular Posts