2008-11-08 20 views

Trả lời

9

Gỡ lỗi và phát triển phải được thực hiện trong môi trường "an toàn" - một thứ không phải là nhiệm vụ quan trọng. Ví dụ, bạn nên có một máy chủ phát triển và/hoặc QA mà bạn sử dụng để phát triển và gỡ lỗi.

EDIT: Máy chủ QA của bạn phải phản chiếu máy chủ sản xuất để bạn có thể gỡ lỗi trong môi trường tương tự, nếu không giống với môi trường sản xuất của bạn.

+0

Tôi nghĩ rằng "nếu không giống hệt" là rất quan trọng, tại đây. Lỗi xảy ra trên một máy chủ không phải là không phổ biến trong thế giới của tôi, vì những lý do cơ bản nằm ngoài tầm kiểm soát của tôi. Nếu các lựa chọn của tôi đang sử dụng VS hoặc muốn tôi có thể tạo lại lỗi trên máy chủ QA, tôi sẽ đi với VS. – MusiGenesis

+0

Nhưng VS không phải là trình gỡ lỗi duy nhất của bạn. Xem một số câu trả lời từ những người khác về các lựa chọn thay thế để có Visual Studio trên máy chủ. –

+0

Bạn vẫn có thể gỡ lỗi mã chạy trên máy chủ sản xuất mà không cần cài đặt studio trực quan trên máy chủ. Kiểm tra Trình gỡ lỗi từ xa (http://msdn.microsoft.com/en-us/library/bt727f1t.aspx) –

1

Cả hai. Một trong những mặt tích cực là đôi khi nó có thể giúp chẩn đoán vấn đề dễ dàng hơn. Một trong những nhược điểm là đôi khi việc cài đặt có thể phá vỡ một ứng dụng web đang hoạt động. Tôi sẽ chỉ làm điều đó nếu tôi phải làm vậy.

Chỉnh sửa: một nhược điểm tiềm ẩn khác xảy ra khi đồng nghiệp quyết định gỡ lỗi một quy trình trực tiếp trên máy chủ sản xuất, dừng ứng dụng trên điểm ngắt và sau đó đi ngủ mà không nhận ra anh đã để ứng dụng không khả dụng. Vâng, điều này đã xảy ra với tôi.

0

Phụ thuộc vào cách bạn đang sử dụng. Hầu hết công việc nặng nhọc mà nó thiết kế không cần thiết trên một máy chủ sản xuất. Tôi thường cài đặt Notepad ++ trên máy chủ sản xuất để chỉnh sửa xml, tập tin cấu hình, vv Tôi muốn nói nếu bạn muốn cài đặt VS, hãy cho nó.

+0

Tôi nghĩ anh ấy đang nói về việc sử dụng nó để gỡ lỗi. Notepad ++ không phải là rất tốt ở đó. – MusiGenesis

3

Cách được khuyến nghị là có một máy nhân bản của máy chủ sản xuất cho mục đích thử nghiệm/gỡ lỗi. Để giữ gương hiện tại, bạn cần phải cài đặt tất cả các bản cập nhật ứng dụng trên cả hai máy chủ cùng một lúc và sao lưu/khôi phục cơ sở dữ liệu sản xuất trên gương hàng đêm hoặc theo yêu cầu.

Vẫn còn một số nhược điểm như lỗi chỉ xảy ra dưới tải nặng. Trong trường hợp này, bạn cần một số loại đăng nhập để theo dõi lỗi. Ngoài ra, bạn có thể cần phải mua thêm giấy phép của các thành phần bên thứ ba để cài đặt trên máy nhân bản sản xuất.

1

Tôi sẽ không bao giờ thực hiện bất kỳ điều gì trực tiếp trên máy chủ sản xuất yêu cầu Visual Studio. Đó là quá nguy hiểm để thực hiện một sự thay đổi về sản xuất mà không làm cho nó trở lại vào cơ sở mã và do đó vào kiểm soát phiên bản. Cuối cùng, bạn sẽ kết thúc giới thiệu lại một lỗi mà bạn nghĩ rằng bạn đã giải quyết vì bạn chỉ thay đổi nó trên máy chủ sản xuất. Thỉnh thoảng tôi sẽ cập nhật đánh dấu lên hoặc các tệp XML trên máy chủ sản xuất nhưng chỉ sau khi đã thực hiện thay đổi trong phát triển và thử nghiệm nó trên hộp QA, và chỉ khi không có mã thực tế được tham gia.

1

Tất nhiên nó phụ thuộc vào sản phẩm và những gì bạn đang gỡ lỗi. Nói chung bạn nên cố gắng tránh nó, nhưng có một số trường hợp bạn không thể sao chép chính xác kịch bản trên máy chủ thử nghiệm và có thể hữu ích khi đính kèm trình gỡ rối vào quy trình đang chạy để nhanh chóng thu hẹp sự cố. tức là nếu bạn đang chạy một máy chủ MMORPG và có lỗi liên tục xảy ra trong các điều kiện tải nhất định, bạn có thể dành hàng tuần hoặc hàng tháng để tìm ra từ các tệp nhật ký và/hoặc kết nối mô phỏng trên máy chủ thử nghiệm hoặc bạn có thể đính kèm một trình gỡ lỗi trong khi sự cố xảy ra trong thời gian thực trên máy chủ sản xuất và tìm ra trong một giờ.

Tôi có xu hướng coi đây là trường hợp ngoại lệ, và làm nhiều việc gỡ lỗi máy chủ sản xuất càng tốt và hợp lý.

2

Tôi không nghĩ đây là một ý hay.Mã của bạn phải có đủ thông tin đăng nhập để nếu có vấn đề trong sản xuất, bạn có thể quay lại nhật ký và xác định những gì đã xảy ra và sửa nó trong môi trường phát triển, sau đó kiểm tra nó trong môi trường dàn dựng trước khi được đẩy vào sản xuất. Tại các nhà phát triển làm việc của tôi không được phép truy cập vào bất kỳ môi trường sản xuất nào, được xử lý bởi các nhóm máy chủ/mạng nhưng đó là bởi vì nó là một doanh nghiệp lớn. Đối với các công ty nhỏ hơn, các nhà phát triển sẽ có quyền truy cập nhưng điều đó không có nghĩa là bạn nên sử dụng nó để gỡ lỗi.

1

Hãy xem loạt bài Production Debugging của Sasha Goldshtein trên số blog. Ông có một số hướng dẫn và screencasts tuyệt vời về những gì có thể được thực hiện để gỡ lỗi mà không có Visual Studio.

4

Nó thực sự phụ thuộc vào việc bạn chấp nhận rủi ro mà quá trình cài đặt mang với nó:

  • treo các ứng dụng sản xuất khi ai đó gắn một debugger để việc áp dụng sai.
  • Nó vi phạm với những gì được coi là thực hành tốt nhất, vì vậy bạn sẽ thực hành phá vỡ điều gì tiếp theo? Trong trường hợp xấu nhất mọi người sẽ bắt đầu thực hiện các nhiệm vụ phát triển về sản xuất
  • Các vấn đề tiềm ẩn khi nhận hỗ trợ, tôi sẽ kiểm tra với Microsoft nếu IIS và SQL Server, vv được hỗ trợ trong môi trường sản xuất nơi VS được cài đặt.

Bạn cũng nên tự hỏi mình những gì là khó khăn nhất với gỡ lỗi vấn đề mà không VS trên máy chủ:

  • Bạn có quen thuộc với stack traces and how to read them?
  • Bạn có biết cách chạy phiên bản chế độ gỡ lỗi của ứng dụng so với phiên bản phát hành/miễn phí không?
  • Bạn có biết rằng bạn có thể sử dụng SOS debugger extension cho các ứng dụng .NET có số Windows Debugging Tools không?
  • Bạn đã cân nhắc sử dụng các công cụ để tự động thu thập và báo cáo về sự cố máy chủ?
  • Bạn đang làm gì để ngăn các sự cố xảy ra trong quá trình sản xuất. Bạn có thể làm một số loại phân tích tĩnh, mô-đun thiết kế lại dựa trên các vấn đề, hoặc sử dụng một kỹ thuật như phát triển theo hướng thử nghiệm?
4

Điều đó chắc chắn không được chấp nhận. Trước hết, để gỡ lỗi, bạn luôn có thể sử dụng công cụ gỡ lỗi cho windows/windbg. Hỗ trợ gỡ lỗi .NET cũng như (SOS/con trai của cuộc đình công), và với một tấm cheat không phải là khó sử dụng. Windbg có thể chạy từ một thanh USB mà không cần cài đặt. Thứ hai, và nguyên nhân chính: bất cứ khi nào bạn cài đặt bất kỳ phiên bản mới hơn của VS, nó đăng ký trình gỡ rối của nó cho chế độ tương tác ** - bạn nhận được một hộp thông báo khi một ngoại lệ xảy ra. Bạn cần chỉnh sửa thủ công đăng ký để hoàn nguyên về hành vi mặc định sau khi cài đặt - và không ai nhớ được điều đó.

Đừng làm điều đó. Có nhiều cách tốt hơn để chẩn đoán vấn đề.

+0

Woah ... đây là gì? :) Làm cách nào để dừng điều đó xảy ra, tôi chưa bao giờ thấy điều đó và tôi đã cài đặt VS.NET trong sản xuất ngay bây giờ. – Jason

0

Nó thường được coi là không phải là "thực hành tốt nhất" để cài đặt Visual Studio trên máy chủ sản xuất. Điều này có thể gây ra những rủi ro về bảo mật - nhưng một mối quan tâm lớn mà tôi có là hiệu suất. Visual Studio sử dụng một lượng lớn tài nguyên và chạy gỡ lỗi của bạn ở đó có thể ảnh hưởng đáng kể đến hiệu suất của các ứng dụng sản xuất.

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