2011-08-31 34 views
7

Tôi đã thừa kế trang web asp cổ điển cũ mà tôi cần hỗ trợ và đang trong quá trình thiết lập môi trường dev/gỡ lỗi vì vậy tôi không phải làm việc trên máy chủ sản xuất .Đọc giá trị web.config trong ASP cổ điển

Mã này hơi lộn xộn và có hàng trăm chuỗi kết nối được tìm thấy rải rác xung quanh địa điểm trong các tệp .asp khác nhau. Tất cả những điều này đều chứa các tham chiếu được mã hóa cứng tới máy chủ SQL, v.v.

Tôi thực sự không muốn thay thế tất cả những điều này bằng môi trường dev cục bộ của SQL DB, vì vậy tôi đã tự hỏi liệu có một cách dễ dàng không để có được cổ điển asp để đọc từ một tập tin web.config .net. Bằng cách này tôi có thể thay đổi tất cả các chuỗi kết nối được mã hóa cứng để đọc từ một nơi này, và sau đó tôi chỉ cần xác định chi tiết máy chủ ở một nơi.

Điều này có nghĩa là sau đó tôi có thể viết mã & gỡ lỗi cục bộ và tất cả những gì tôi phải làm là thay đổi một vài giá trị trong web.config trước khi triển khai.

Vui lòng cung cấp các ví dụ rõ ràng trong câu trả lời của bạn vì tôi mới sử dụng cổ điển asp & Tôi thực sự không thích nó ở giai đoạn này. không thể chờ đợi để tái phát triển tất cả trong .net;)

Cảm ơn

Trả lời

5

Chỉ cần sử dụng một server-side-bao gồm với tất cả các cài đặt ứng dụng bạn cần. Nó sẽ dễ dàng hơn (và nhanh hơn) để thực hiện hơn việc đọc một web.config và cung cấp cho bạn sự linh hoạt tương tự.

config.asp

<% 
Dim connectionString 
connectionString = "your connectionstring here" 
%> 

default.asp

<% Option Explicit %> 
<!-- #include virtual="config.asp" --> 
<% 
'--- 
' ... use connectionString here 
'--- 
%> 

Từ những gì bạn nói với bạn có thể cải thiện phần còn lại của di sản của bạn sử dụng SSI ở những nơi khác nữa.

+0

Cảm ơn, vâng, tôi có thể thực hiện các tải trọng để cải thiện nó, nhưng theo như tôi lo ngại đó là mã chết. Tôi muốn làm càng ít càng tốt với nó & tái phát triển nó từ đầu :) – Bob

+0

@bob: Nhưng sử dụng phần mở rộng tập tin .asp không .inc. Nếu máy chủ IIS có. * Ánh xạ, bạn có thể vô tình làm cho nó có thể cho một máy bên ngoài để tải về /config.inc. Nếu các chuỗi kết nối có thể chứa tên người dùng và mật khẩu, vì vậy nó không phải là thứ bạn muốn cho phép truy cập bên ngoài. – AnthonyWJones

+0

@Anthony Điểm tốt - Tôi đã cập nhật câu trả lời của mình cho phù hợp. – Filburt

20

Nơi bình thường để làm điều này trong ASP cổ điển là trong một biến ứng dụng trong file global.asa:

SUB Application_OnStart 
    application("connectionstring")= "[your connectionstring]" 
END SUB 

Sau đó bạn có thể sử dụng application("connectionstring") trên mỗi trang mà không cần phải có một bao gồm trên trang.

+2

+1 Tôi không nhận ra bạn có thể làm điều đó. –

+1

+1 Làm sạch mã, dễ sử dụng. Tham khảo [this] (https://www.w3schools.com/asp/asp_globalasa.asp) trang để biết thêm về tập tin global.asa –

+0

Không bao giờ nghĩ về điều đó trước ..: -o (Cách tuyệt vời để làm điều này vào năm 2017);) – yaqoob

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