2011-10-13 23 views
14

Chúng tôi vừa cập nhật một trang web khá lớn ASP.NET (~ 1500 bảng xếp hạng lưu lượng alexa) để sử dụng VS2010 và .NET 4.0 chạy trên Windows Server 2008 R2ASP.Net không thể tạo/shadow copy trong SẢN XUẤT

Kể từ sau đó, khi chúng tôi triển khai phiên bản mới của trang web, đôi khi chúng tôi nhận thấy cùng một lỗi trong bài đăng này: ASP.Net cannot create/shadow copy Thông báo lỗi là: Không thể tạo/sao chép 'xxxx, Version = 4.0.4301.26898, Culture = neutral, PublicKeyToken = null 'khi tệp đó đã tồn tại

Tuy nhiên, không giống như trong bài đăng đó, lỗi chỉ xảy ra trong môi trường sản xuất của chúng tôi & chỉ trên một số máy chủ.

Sau khi chúng tôi gửi một phiên bản mới của mã, chúng tôi sẽ tái chế tất cả các AppPool và lỗi bắt đầu xảy ra.

Tái chế AppPool khác có vẻ như khắc phục được sự cố, tuy nhiên tôi thực sự muốn biết cách chúng tôi có thể tránh vấn đề này ngay từ đầu?

Trả lời

4

Cuối cùng, chúng tôi đã giải quyết được các vấn đề 'Không thể tạo/sao chép' của chúng tôi. Vấn đề hóa ra là do thời gian của chúng tôi AppPool tái chế & bản sao thư mục của chúng tôi. Nó làm việc như thế này:

  1. trang web chính của bản sao cho: máy chủ \ thư mục
  2. rác ứng dụng hồ bơi cho trang web
  3. sao chép site admin nhỏ đến máy chủ \ otherdirectory

vấn đề là ở chỗ chúng tôi trang quản trị là một thư mục ảo của trang chính và sử dụng cùng một AppPool. Điều này làm việc tốt dưới NET 2.0, nhưng tôi nghĩ rằng chúng tôi có thể xác định các thất bại khi chúng tôi nâng cấp lên .NET 4.0. Dường như chỉ chạy tốt nếu chúng ta làm điều đó theo cách này thay vì:

  1. trang web chính của bản sao cho: máy chủ \ thư mục
  2. sao chép site admin nhỏ đến máy chủ \ otherdirectory
  3. rác ứng dụng hồ bơi cho trang web
4

Chúng tôi nhận thấy rằng việc loại trừ các thư mục asp.net tạm thời khỏi lập chỉ mục (và quét vi-rút) đã loại bỏ các lỗi sao chép bóng của chúng tôi.

Ví dụ PowerShell kịch bản cho các dịch vụ lập chỉ mục trên Windows Server 2003:

Set-ItemProperty -path

HKLM: \ SYSTEM \ CurrentControlSet \ Control \ ContentIndex \ Catalogs \ Web \ Scopes -name “C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files” -giá trị" ,, 4"

Restart-Service cisvc

+0

Chúng tôi đang sử dụng Windows Server 2008 R2 và không có mục đăng ký đó. Cảm ơn vì đề nghị mặc dù, chúng tôi sẽ xem nếu có một cái gì đó tương đương, chúng tôi có thể làm – Richard

+0

Ngăn chặn phần mềm AntiVirus của tôi từ quét tạm thời ASP.NET tập tin dường như đã thực hiện các trick cho tôi. –