Bối cảnh (skip to phía dưới nếu bạn muốn câu hỏi)AnkhSVN phá vỡ ASP.NET cho phép chia sẻ với SVN 1,7
Gần đây tôi đã nâng cấp một kho SVN (lưu trữ trên Assembla) để SVN 1.7. Sau khi làm như vậy, chúng tôi bắt đầu liên tục gặp phải rất nhiều lỗi File Access Denied
trên các trang ASP.NET nằm trong bản sao làm việc cục bộ của kho lưu trữ.
Một số thư mục cũng bắt đầu nhận quyền truy cập tệp lạ (chúng trở thành chỉ đọc được đánh dấu) và chia sẻ người dùng đã bị xóa khỏi chúng. Những vấn đề này sẽ chỉ bắt đầu xảy ra sau một chu kỳ cập nhật/cam kết, thông qua plugin Visual Studio của AnkhSVN, nhưng không phải lúc nào cũng vậy; nó có vẻ rất cao.
Sửa lỗi tạm thời duy nhất mà chúng tôi đã tìm thấy cho đến nay là cam kết mọi thay đổi chưa thực hiện, xóa bản sao cục bộ và kiểm lại bản sao làm việc đầy đủ (với TortoiseSVN). Tuy nhiên, đó không phải là một sửa chữa khả thi, và nó ảnh hưởng nghiêm trọng đến năng suất.
Trang web này là Azure WebWorkerRole dựa trên Azure. Nó chưa bao giờ đưa ra các vấn đề trước khi nâng cấp lên SVN 1.7. Tôi đã thử không quan trọng với các điều khoản IIS nội bộ để giải quyết vấn đề, tuy nhiên, không có súc sắc.
Môi trường của tôi
- Visual Studio 2010 Ultimate SP1 10.0.40219.1
- AnkhSVN 2.3.10509 (phiên bản mới nhất, hỗ trợ SVN 1.7.1)
- TortoiseSVN 1.7.1, Xây dựng 22.161 - 64 Bit
- Chạy trong Chế độ gỡ lỗi qua môi trường mô phỏng Azure
Câu hỏi
Có thể cho SVN 1.7 hoặc bất kỳ công cụ nào trong môi trường của tôi phá vỡ quyền truy cập tệp để các tệp trở nên không sử dụng được trong trang ASP.NET không? và quan trọng hơn, làm thế nào để sửa lỗi này?
Các chính xác lỗi cho phép tập tin đổ ra là thế này:
truy cập vào đường dẫn '// tập tin //' bị từ chối.
Mô tả: Một ngoại lệ không được giải quyết xảy ra trong khi thực hiện yêu cầu web hiện tại là . Vui lòng xem lại dấu vết ngăn xếp để biết thêm thông tin về về lỗi và vị trí bắt nguồn từ mã.
Chi tiết ngoại lệ: System.UnauthorizedAccessException: Truy cập vào đường dẫn '// file //' bị từ chối.
ASP.NET không được phép truy cập tài nguyên được yêu cầu. Xem xét cấp quyền truy cập vào tài nguyên cho yêu cầu ASP.NET nhận dạng. ASP.NET có một bản sắc quá trình cơ sở (thường là {MACHINE} \ ASPNET trên IIS 5 hoặc Dịch vụ mạng trên IIS 6 và IIS 7 và cấu hình ứng dụng được định cấu hình trên IIS 7.5) được sử dụng nếu ứng dụng không mạo danh .Nếu ứng dụng là mạo danh qua, danh tính sẽ là người dùng ẩn danh (thường là IUSR_MACHINENAME) hoặc người dùng yêu cầu được xác thực .
Để cấp quyền truy cập ASP.NET cho một tệp, hãy nhấp chuột phải vào tệp trong Explorer, chọn "Thuộc tính" và chọn tab Bảo mật. Nhấp vào "Thêm" để thêm người dùng hoặc nhóm thích hợp. Đánh dấu tài khoản ASP.NET và chọn các hộp cho quyền truy cập mong muốn.
Nhưng bản sao làm việc sạch sẽ không tạo ra lỗi này. So sánh các điều khoản của hai, có vẻ như các bản sao làm việc không bị lỗi được chia sẻ (với IUSR và tài khoản cục bộ), trong khi các bản sao bị hỏng không chia sẻ, nhưng chia sẻ không bao giờ được thay đổi bởi người dùng.
Bạn có thể cho biết cách thức các quyền của tệp bị hỏng không? Chúng được thiết lập là gì, những gì còn thiếu vv? Bạn có thể chỉ ra root của bản sao làm việc (thư mục chứa thư mục .svn) không? Ngoài ra tôi nghĩ rằng bạn cần phải chỉnh sửa câu hỏi của bạn để xác định sự khác biệt giữa kho lưu trữ và bản sao làm việc. Bạn không sao chép một "kho lưu trữ phía máy khách" trong Subversion. –
@SanderRijken: ok, tôi sẽ cập nhật nó. Trong điều kiện của clone suy nghĩ, là điều của GIT ... – Necrolis