2010-10-19 25 views
21

Tôi có một ứng dụng web AJAX-nặng ASP.NET được phát triển bằng .NET 4.0, sử dụng TFS làm điều khiển nguồn của chúng tôi. Gần đây chúng tôi đã nâng cấp các công cụ dev của mình để sử dụng VS2010 và TFS 2010, nhưng hiện tại mỗi lần tệp được kiểm tra, chúng tôi thấy studio trực quan tải lại tất cả các ký hiệu và tất cả các phiên bị xóa.App_offline.htm được tạo/xóa bất cứ khi nào tôi kiểm tra một tệp trong TFS

Sau khi đặt một số mã đăng nhập lỗi, chúng tôi phát hiện lý do cho việc tái chế là nó tính toán App_offline.htm đang thay đổi bất cứ khi nào chúng tôi kiểm tra. Điều này không tồn tại ở bất kỳ nơi nào trong dự án, và SO-fu của tôi đã tìm thấy một số thông tin về SQL Express khiến tệp này được tạo và xóa, vì vậy có thể đó là những gì đang xảy ra ở đây.

Có vẻ như tôi đã cài đặt SQL-Express nhưng thậm chí vô hiệu hóa các dịch vụ đang chạy, sự cố vẫn tiếp diễn.

Có cách nào để ngừng kiểm tra việc thêm/xóa tệp này, nếu điều này thực sự là những gì đang xảy ra? Thật khó chịu khi có ứng dụng tái chế bất cứ khi nào tôi chỉ cần kiểm tra một tệp ...

Trả lời

14

Tôi đã phát hiện ra một công việc xung quanh.

1) Chuyển đến vị trí mà Visual Studio lưu trữ tệp app_offline.htm C: \ Users [user] \ AppData \ Roaming \ Microsoft \ VisualStudio \ 11.0 \ (thay thế [user] với tên đăng nhập)

2) Xóa file app_offline.htm

(Chú ý: đây một mình sẽ không giải quyết nó, như VS tái sinh các tập tin một lần nữa khi nó không tìm thấy)

3) Tạo thư mục có tên app_offline.htm (một DIRECTORY!)

Điều này về cơ bản gây ra lỗi với quá trình cố gắng sử dụng tệp vì đó không phải là tệp và xung đột tên nghĩa là VS không thể tạo lại tập tin. May mắn là lỗi không có tác dụng phụ không mong muốn.

Bây giờ hãy tiếp tục sử dụng VS và Team Foundation Server và tận hưởng không liên tục việc tải lại appdomain!

Điều này tất nhiên có nghĩa là mọi quá trình xuất bản có thể sẽ không sử dụng tệp app_offline.htm, vì vậy bạn cần phải theo dõi điều đó.

+0

Điều này thật tuyệt vời! Kudo trên tìm kiếm. Như một tiền thưởng bổ sung, hoạt động thanh toán TFS nhanh hơn rất nhiều, tôi đoán nó đang chờ trên miền ứng dụng để tải lại trước. – XwipeoutX

0

Có lẽ, ai đó làm checkin trong file app_offline, khi bạn nhận dự án, các tập tin đến. Xem kho lưu trữ nguồn của bạn.

+0

Tệp không được đăng ký. Như tôi đã nói, bất cứ khi nào bất kỳ tệp nào được kiểm tra, tệp đang được tạo và xóa, có lẽ để buộc tái chế, mà tôi không muốn xảy ra. – XwipeoutX

1

Vì tôi gặp sự cố, tôi đã quyết định thử và theo dõi nó. Đầu tiên tôi đã tìm ra rằng nếu các kết nối cơ sở dữ liệu của tôi đang ngoại tuyến và tôi nhấp vào nút Refresh trong Server Explorer, nó tạo tệp app_offline trong thư mục gốc của trang web của tôi và sau đó xóa nó. Tôi tái sản xuất nó nhiều lần.

Tôi thực sự có 3 kết nối cơ sở dữ liệu trong trình khám phá máy chủ. Nếu tôi ngắt kết nối 2 kết nối thực sự là kết nối với cơ sở dữ liệu trên máy chủ SQL từ xa, nó không tạo tệp app_offline khi tôi làm mới. Nó CHỈ tạo tệp app_offline nếu tôi ngắt kết nối khỏi tệp .MDF LOCAL và sau đó làm mới (kết nối lại với tệp .mdf đó và X bị ngắt kết nối màu đỏ sẽ biến mất). Chắc chắn, sau mỗi lần kết nối lại với cơ sở dữ liệu cục bộ đó, tệp app_offline.htm sẽ xuất hiện trong Thùng rác của tôi.

Thực hiện thêm một bước nữa, tôi đã tách cơ sở dữ liệu cục bộ (tệp .mdf) và di chuyển tệp sang máy tính để bàn của tôi. Sau đó, bắt đầu lại VS2010 và không thể tái sản xuất lỗi. Tôi đặt các tệp trở lại, thiết lập lại kết nối và bắt đầu lại app_offline. Sau đó, tôi vô hiệu hóa dịch vụ SQLExpress, và đã nhận được một số lỗi khác, nhưng ngay cả với dịch vụ SQLExpress bị vô hiệu hóa, tôi vẫn có app_offline trong Recycle Bin của mình.

Vì vậy, tôi đoán câu trả lời của tôi là loại bỏ cơ sở dữ liệu cục bộ .mdf nếu bạn có thể. Nó không phải là một lựa chọn tốt cho tôi bởi vì tôi cần có cơ sở dữ liệu cục bộ khi tôi đang làm việc trên mã từ xa, nhưng nếu bạn không cần bất kỳ cơ sở dữ liệu cục bộ nào, có lẽ bạn có thể thử loại bỏ chúng.

Lưu ý: Tôi đang sử dụng VS2010 (và đôi khi VS2008) và SQLExpress 2008 RS. Tôi không sử dụng TFS.

+0

Có vẻ hữu ích cho những người sử dụng SQLExpress trong giải pháp của họ. Chúng tôi không - không có kết nối dữ liệu nào trong trình khám phá máy chủ của chúng tôi. – XwipeoutX

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