Tôi đang chơi với perl dancer trên Linux và tất cả đều tốt và dany nếu trình duyệt kết nối trực tiếp với máy chủ qua mạng LAN. Tuy nhiên, khi tôi kết nối qua WAN và trình duyệt là IE9, thì thỉnh thoảng con trỏ bận sẽ không biến mất.Dancer ngẫu nhiên bị treo khi đọc yêu cầu GET
Tôi có thể kích hoạt điều này, bằng cách tải lại trang apx 10 lần liên tiếp. Tôi nhận được vấn đề này ngay cả khi tôi chờ vài giây giữa mỗi lần tải lại. Bản thân trang thật đơn giản và vượt qua kiểm tra w3c.
Nó không có sự khác biệt nếu tôi chạy vũ công dưới dạng gốc, hoặc liệu cổng là 80 hay 3000. Một lần thử nghiệm thường xuyên tải lại trang với apache và dường như không có vấn đề gì.
Tôi chạy strace và tôi có ấn tượng, rằng các dữ liệu yêu cầu đôi khi không availbale tại các vũ công thời gian cố gắng để đọc nó. Đây là những gì các dấu vết trông giống như
Khi nó hoạt động:
{sa_family=AF_INET, sin_port=htons(52073), sin_addr=inet_addr("78.42.213.92")}, [16]) = 4
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfab5028) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(4, 0, 0xbfab5070, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfab5028) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(4, 0, 0xbfab5070, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getpeername(4, {sa_family=AF_INET, sin_port=htons(52073), sin_addr=inet_addr("78.42.213.92")}, [16]) = 0
read(4, "G", 1) = 1
read(4, "E", 1) = 1
read(4, "T", 1) = 1
Khi nó bị treo
{sa_family=AF_INET, sin_port=htons(52225), sin_addr=inet_addr("78.42.213.92")}, [16]) = 4
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfab5028) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(4, 0, 0xbfab5070, SEEK_CUR) = -1 ESPIPE (Illegal seek)
ioctl(4, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbfab5028) = -1 ENOTTY (Inappropriate ioctl for device)
_llseek(4, 0, 0xbfab5070, SEEK_CUR) = -1 ESPIPE (Illegal seek)
fcntl64(4, F_SETFD, FD_CLOEXEC) = 0
getpeername(4, {sa_family=AF_INET, sin_port=htons(52225), sin_addr=inet_addr("78.42.213.92")}, [16]) = 0
read(4,
và sau đó nó ngồi mãi mãi. Bất kỳ ý tưởng những gì tôi có thể làm gì?
Tôi cũng đã thấy IE9 giữ khóa trên Dancer đang chạy trong Plack với HTTP :: Server :: Simple. Giải pháp tạm thời của tôi là sử dụng Firefox và giải pháp lâu dài của tôi là sử dụng một máy chủ web cao cấp hơn với Plack tại một số điểm. Dancer cung cấp tài liệu về cấu hình cho các máy chủ web khác nhau như nginx - tương tự như giải pháp @wes. –
@wes tôi đặt vũ công đằng sau apache và tất cả dường như là tốt. Cảm ơn –