2008-11-09 10 views

Trả lời

4

Dưới đây là cách tìm hiểu và giải quyết các vấn đề đáng tin cậy.

1) Tìm kiếm Windows \ Microsoft.NET \ Framework [VERSION CỦA BẠN] \ thư mục CONFIG cho các tập tin:

  • web.cấu hình (đây là tập tin cấu hình root)
  • web_mediumtrust.config
  • web_hightrust.config

2) Thay đổi web.config để nói

<trust level="Medium" originUrl="" /> 

3) Hãy thử ASP.NET của bạn ứng dụng. Mỏ không thành công với lỗi quyền.

4) Khác biệt giữa web_mediumtrust.config và web_hightrust.config trong một công cụ khác, như WinMerge.

5) Sao chép cài đặt từ cao xuống mức trung bình tại một thời điểm và xem chúng ảnh hưởng như thế nào đến ứng dụng của bạn. Trong trường hợp của tôi, thông báo lỗi được gọi là ConfigurationPermission, do đó rất dễ chẩn đoán.

Nếu bạn có thể ghim xuống các dòng chính xác trong tệp web_mediumtrust.config đang chặn bạn, thì có thể bạn có thể chia sẻ với công ty lưu trữ của mình và có cơ hội làm việc tốt hơn.

Nhiều tài liệu ở đây:
http://msdn.microsoft.com/en-us/library/aa302425.aspx

@Oli, ứng dụng của tôi IS lưu trữ tại GoDaddy và tôi phải làm một số cách giải quyết trong mã khi tôi bắt đầu sử dụng Lucene.NET. Tôi đã phải sửa đổi mã nguồn Lucene.NET để không sử dụng GetTempPath và System.IO.FileInfo.

+0

Tôi sẽ chỉ ra những gì có thể hiển nhiên với mọi người, nhưng tôi phải kiểm tra chắc chắn: nên đi trong phần và thuộc tính cấp đó phân biệt chữ hoa chữ thường, trường hợp trên "M", chữ thường thì mọi thứ khác: S –

3

Ai có thể chắc chắn? Đó là lý do tại sao bạn nên phát triển với mức độ tin cậy của tập trung trong web.config của bạn.

<trust level="Full|High|Medium|Low|Minimal" /> 
3

Hầu hết các máy chủ chia sẻ không sử dụng môi trường tin tưởng trung thực thực sự vì nó hạn chế một số thứ quá quan trọng. Những người khác hạn chế một số cài đặt bổ sung vì lý do hậu môn của riêng họ.

Điều tốt nhất bạn có thể làm là hỏi máy chủ lưu trữ những cài đặt nào họ sử dụng cho ASPNET. Yêu cầu thông số kỹ thuật của mức độ tin tưởng mà họ đang sử dụng. Tìm hiểu giới hạn bộ nhớ. Một khi bạn đã có những chi tiết đó bạn sẽ có thể sao chép kịch bản ở cấp địa phương.

Nếu họ không thông báo cho bạn, chỉ cần đặt ứng dụng của bạn chạy ở mức tin tưởng trung bình nhưng (rõ ràng) sẽ không nhất thiết phải hoạt động nếu họ đang sử dụng cấp độ tin cậy được sửa đổi.

Đây là some information on setting trust levels in IIS. Nói chung, vấn đề duy nhất tôi gặp phải là: Nếu bạn đang đẩy hội đồng, hãy đảm bảo bạn cho phép một phần yêu cầu đáng tin cậy (đó là thẻ meta hội) nếu không bạn sẽ không thể sử dụng chúng.

Dưới đây là một trích GoDaddy's Medium Trust information page:

Ứng dụng hoạt động theo một mức độ tin cậy trung không có quyền truy cập registry, không truy cập vào các bản ghi sự kiện Windows, và không thể sử dụng ReflectionPermission (nhưng có thể sử dụng Reflection) . Các ứng dụng như vậy chỉ có thể giao tiếp với một dải địa chỉ mạng được xác định và quyền truy cập hệ thống tệp được giới hạn ở cấu trúc phân cấp ảo của ứng dụng .

Sử dụng một mức độ tin cậy trung ngăn các ứng dụng truy cập vào chia sẻ tài nguyên hệ thống và loại bỏ tiềm năng cho các ứng dụng can thiệp. Thêm OleDbPermission và OdbcPermission cho phép các ứng dụng sử dụng các nhà cung cấp dữ liệu đó để truy cập cơ sở dữ liệu . WebPermission được sửa đổi để cho phép gửi đi http và https lưu lượng truy cập.

Điều đó có thể không lập bản đồ chính xác với những gì bạn sẽ phải làm việc với máy chủ lưu trữ của mình (trừ khi bạn có GoDaddy) nhưng đó là một ví dụ điển hình.

+0

Có tài liệu nào đó sẽ chỉ cho tôi cách thiết lập mức tin cậy trung bình trên máy tính của riêng tôi, để thử mọi thứ không? Tôi nhìn vào MSDN và gặp khó khăn khi tìm kiếm ... –

+0

Chắc chắn, tôi vừa thêm một liên kết vào bài đăng. – Oli

0

Đảm bảo rằng bất kỳ thư viện/khung bên thứ ba nào (Castle to mind) đang xây dựng (hoặc có thể được xây dựng) với mức độ tin cậy trung bình.

0

Thư viện system.runtime.serialization hoàn toàn không khả dụng trong tin cậy trung bình.

Tôi mã hóa xung quanh việc này để tuần tự hóa/giải tuần tự hóa và phát hiện ra một cách khó khăn. Phải mất một tuần để có được một liên kết để xác nhận rằng hạn chế tin tưởng trung bình là để đổ lỗi. Tôi đã kết thúc chuyển đổi công ty lưu trữ như là một kết quả.

0

Trong tin tưởng trung bình, ít nhất là ở máy chủ của tôi, các cuộc gọi P/INVOKE không khả dụng, tức là sử dụng [DLLImport] để gọi thành phần COM sẽ không hoạt động.

-Edoode

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