Thuộc tính HttpContext.Current.Request.ApplicationPath
đại diện cho thư mục ảo trong IIS hoặc WebDev.WebServer.Tôi có thể truy cập tên thư mục ảo trong global.asax.cs không?
HttpContext.Current.Request.ApplicationPath evaluates to "/virtualdirectory"
này có thể được sử dụng kết hợp với VirtualPathUtility
để thực hiện một gốc đường dẫn tương đối:
VirtualPathUtility.ToAbsolute("~/images/cat.jpg",
HttpContext.Current.Request.ApplicationPath)
// (this evaluates to "/virtualdirectory/images/cat.jpg")
Trong IIS6 và WebDev.WebServer Yêu cầu đối tượng là sẵn trong global.asax.cs
, nhưng IIS7 than phiền rằng nó là 'không có sẵn trong ngữ cảnh hiện tại'. Do đó dòng thứ hai của mã ở trên hoạt động nhưng không phải trong IIS7.
Vấn đề là tôi cần truy cập tên trực tiếp ảo trong phạm vi global.asax.cs
. Tôi cần nó để xây dựng một số đường dẫn được sử dụng trong CSS được tạo động. Có cách nào khác để truy cập giá trị này không?
Edit: Đây là lỗi mà bạn nhận được trong IIS 7 để gọi HttpContext.Current.Request
trong global.asax.cs dưới Application_Start:
HttpException (0x80004005): Request is not available in this context]
System.Web.HttpContext.get_Request() +8789264
Tôi không hiểu câu hỏi, HttpContext.Current có sẵn trong global.asax, bạn có hỏi sự kiện nào không? –
@deviant - HttpContext.Current có sẵn, nhưng HttpContext.Current.Request thì không. Tôi đã chỉnh sửa bài đăng để bao gồm lỗi –