2012-04-30 38 views
9

MSDN article này nói:Làm thế nào để MapPath với RequestContext trong WCF Service

HttpContext: Current is always null when accessed from within a WCF service. Use RequestContext instead.

Những gì tôi đang cố gắng làm là tải một số file XSD từ IIS của tôi tổ chức dịch vụ WCF. Vấn đề là, tôi không thể tìm ra cách để làm một Server.MapPath() như tôi sẽ vào bất kỳ trang web vani ASP.NET cũ, một cái gì đó như:

HttpContext.Current.Server.MapPath(schemaUri);

Điều gì sẽ là cách tương đương sử dụng RequestContext trong một IIS lưu trữ WCF dịch vụ?

Các lược đồ nằm trong thư mục "Lược đồ" ở gốc của ứng dụng dịch vụ. Họ đang tham chiếu sử dụng một phần tùy chỉnh cấu hình trong web.config như thế này:

<schemas> 
    <add uri="~/Schemas/foo.xsd" xmlNamespace="http://foo.bar/types" /> 
</schemas> 

Và tôi đã cố gắng để tải như thế này:

var schemaUri = HttpContext.Current.Server.MapPath(schema.Uri);

nào hoạt động tốt từ bên trong một ASP bình thường Trang web. NET, chỉ cần không phải là một IIS lưu trữ WCF dịch vụ.

Trả lời

26

Bạn có thể sử dụng HostingEnvironment.MapPath.

+1

Hoooo! Ngọt! Điều đó thậm chí hoạt động trong một dự án UnitTest! Cảm ơn nhiều! – Didaxis

+0

Bạn được chào đón :) –

+0

hostingEnvironment.MapPath cung cấp lỗi compliation –

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