2009-05-19 35 views
5

Tôi đang làm việc để thêm tính năng vào trang web asp cổ điển cũ và gặp phải sự cố thú vị. Dòng sau trên trang dẫn đến lỗi hữu ích "Đối tượng được yêu cầu: ''"ASP cổ điển - Yêu cầu đối tượng rỗng

strServerName = Request.ServerVariables("server_name") 

Khi tôi đính kèm một trình gỡ lỗi để xem xét, Yêu cầu thực tế trống, tôi không hiểu cách có thể xảy ra? Dòng này tồn tại trên một số trang và thực hiện không có vấn đề nào ngoài vấn đề này. Trong trường hợp này, trang được thực hiện bởi Chuyển hướng từ một trang khác.

Tôi đã tìm kiếm giải pháp trong một ngày hoặc bây giờ và chưa tìm được bất kỳ thứ gì hữu ích. Tôi tuyệt vọng, mọi ý tưởng sẽ được đánh giá cao.

Ồ, và nếu cần thêm thông tin, vui lòng gọi cho tôi.

Cảm ơn!

Cập nhật 1
Theo yêu cầu, dưới đây là toàn bộ đoạn mã được bọc trong <%%> thẻ. khối này tồn tại dưới dạng mã đầu tiên trong tập tin (có tên là 'lệnh kết quả instant.asp'):

<% 
strServerName = Request.ServerVariables("server_name") 
strServerName = UCase(strServerName) 

strServerURL = "http://localhost/cbr" 
strServerURLhttps = "https://localhost/cbr" 
strConnect = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=CBR; Integrated Security=SSPI" 

Dim objConn 
Dim sql_stmt 
Dim rs 
%> 

Cập nhật 2
Tôi đã sử dụng 2 phương pháp sau đây để chuyển hướng thực hiện đến trang này - có lẽ điều này có thể khiến yêu cầu bị mất?

'Response.Redirect strServerURL & "/order-results-instant.asp?gwstep=1" 
Response.Write "<META HTTP-EQUIV=""refresh"" content=""5;URL=" & strServerURL & "/order-results-instant.asp?gwstep=1"">" 
+0

Vui lòng đăng mã từ trang (bao gồm cả tiêu đề <% %>) và cung cấp tên tệp đầy đủ của trang. – RedFilter

+0

Tôi đồng ý với OrbMan, mã này hoạt động nếu tôi chỉ có một trang ASP cơ bản không có gì khác trong đó. Bạn có thể cung cấp thêm chi tiết về mã của mình không? Có thể một biến bên ngoài đang gây ra điều này. – CodeLikeBeaker

+0

Trang được tải bằng cách chuyển hướng từ trang nguồn đầu tiên. Tôi đã thử chuyển hướng này bằng cách sử dụng 2 phương pháp sau đây - có lẽ điều này sẽ làm sáng tỏ một số? (Tôi xin lỗi, nó đã được một thời gian dài kể từ khi làm việc với asp, và thậm chí sau đó tôi không có nhiều kinh nghiệm). 'Response.Redirect strServerURL & "/order-results-instant.asp?gwstep=1" Trả lời.Viết "" –

Trả lời

5

Quét qua phần còn lại của mã. Ở cấp độ Toàn cầu, bạn sẽ tìm thấy điều này: -

Dim Request 

Đổi tên biến này và cách sử dụng hiện tại của nó và đối tượng Yêu cầu gắn với ngữ cảnh tập lệnh sẽ hiển thị.

+1

Bạn là một thiên tài !!! Tôi cảm thấy hoàn toàn và hoàn toàn câm lặng, nhưng tôi cảm ơn bạn rất nhiều! –

1

Trên máy chủ của bạn là tiện ích mở rộng Dịch vụ web của trang máy chủ đang hoạt động được bật (bật)?

+0

Có và các tệp asp khác thực thi không có vấn đề gì (ngay cả khi truy cập đối tượng Request). –

1

Tôi đã sao chép mã của bạn vào tệp asp thử nghiệm của mình bằng mã sau và mã được chuyển hướng tốt.

<% 
strServerName = Request.ServerVariables("server_name") 
strServerName = UCase(strServerName) 
strServerURL = "http://localhost/" 
strServerURLhttps = "https://localhost/" 
strConnect = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=CBR; Integrated Security=SSPI" 
Dim objConn 
Dim sql_stmt 
Dim rs 

Response.Write(strServerName) 

if Request.Querystring("test") <> "1" then 
    Response.Redirect("http://" + strServerName + "/asptest.asp?test=1") 
end if 
%> 

Sự khác biệt thực sự duy nhất là tôi thêm "http: //" vào chuyển hướng. Có lẽ một cái gì đó tôi đã làm sẽ làm sáng tỏ một số để giúp bạn giải quyết vấn đề của bạn.

cảm ơn

+0

Tôi cũng có thể lấy trang mẫu của bạn và làm cho nó chạy không có vấn đề gì và có quyền truy cập vào đối tượng Yêu cầu (như tôi làm với các trang khác trong cùng một trang web này). Nhưng tôi vẫn có cùng một vấn đề với một yêu cầu rỗng sau khi chuyển hướng. Tôi cũng đã kiểm tra để đảm bảo rằng tôi đã sử dụng một url đủ điều kiện, và tôi đang thực tế làm như vậy, và dường như nó không tạo ra sự khác biệt nào để thay đổi nó. –

1

Ứng dụng có hoạt động nếu bạn cố gắng truy cập tại điểm trước đó trong trang không?

+0

Về mặt chính xác, đây là dòng đầu tiên tuyệt đối của mã được thực hiện không thành công. Tôi đã di chuyển nó đến một điểm sau đó trong trang và nó kết quả trong cùng một lỗi. –

Các vấn đề liên quan