2010-03-25 30 views
6

Tương tự như Ubiquitous way to get the root directory an application is running in via C#, nhưng câu hỏi đó dường như liên quan đến Win Forms. Làm thế nào sẽ được thực hiện tương tự cho các biểu mẫu Web?Cách phổ biến để lấy gốc hệ thống tập tin của ứng dụng .NET WEB

Tôi đã sử dụng ...

HttpContext.Current.Server.MapPath("~") 

này hoạt động tuyệt vời để xử lý các yêu cầu HTTP nhưng có vẻ như không có tác dụng nếu một lịch trình như Quartz.NET gọi một công việc (vấn đề tôi đang gặp). Các HttpContext.Current là null trong kịch bản đó vì một yêu cầu HTTP thực tế không được thực hiện.

Trả lời

5

Bạn đang tìm kiếm thuộc tính HttpRuntime.AppDomainAppPath và có lẽ là lớp VirtualPathUtility.

+0

HttpRuntime.AppDomainAppPath đã làm việc để trả lại gốc ứng dụng web. Điều này có vẻ là tài sản chuyển tiếp thẳng hơn để có được root. – Eddie

5

Thử phương thức System.Web.Hosting.HostingEnvironment.MapPath. AFAIK nó không phụ thuộc vào HttpContext, do đó bạn sẽ có thể sử dụng nó từ một chủ đề nền.

+0

+1 System.Web.Hosting.HostingEnvironment.MapPath ("~") làm việc cho trở về gốc ứng dụng web. – Eddie

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