Ask a questionAsk a question
 

AnswerWCF equivalent to MapPath?

  • Tuesday, January 09, 2007 4:32 PMKevinBurton Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    Is there a WCF equivalent to MapPath? I have some specific files that will be in the directory where the service is running. My question stems from the fact that MapPath bacially is called from a static HttpContext. I understand that this isn't a problem if the service is hosted in IIS but will there be an HttpContext for all hosting environments? What would be the safest way to get the "root" directory of a WCF service? Thank you.

    Kevin Burton

    HttpContext.Current.Server.MapPath

Answers

  • Monday, February 26, 2007 4:31 PMWenlong Dong Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Hi Kevin, using HostingEnvironment plus VirtualPathExtension is the right thing to map virtual paths to physical paths. This works fine for any IIS/WAS hosted services, even for Cassini. What other hosts are you talking about please?

All Replies

  • Sunday, February 25, 2007 10:02 PMBrian McNamara - MSFT Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    There is an HttpContext only when webhosted in aspnetCompatibilityMode, see http://msdn2.microsoft.com/en-us/library/aa702682.aspx for details.

    I don't think there is an equivalent for other hosting environments... what is your ultimate goal?

  • Monday, February 26, 2007 12:14 AMKevinBurton Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
     Brian McNamara - MSFT wrote:

    There is an HttpContext only when webhosted in aspnetCompatibilityMode, see http://msdn2.microsoft.com/en-us/library/aa702682.aspx for details.

    I don't think there is an equivalent for other hosting environments... what is your ultimate goal?

     

    The ultimate goal would be to have a single call that would tell me the virtual directory of the service similar to MapPath. If the WCF service is hosted by IIS then HttpContext is null so in that case I have been directed to the HostingEnvironment class. But this class does not really exist for other hosts. I was looking for a single call that would tell me where the service "root" directory is so I can put various configuration files there and I don't have to hard code the path names to these files.

    In addition I have been directed to VirtualPathExtension but I have not tried this yet.

    http://blogs.msdn.com/wenlong/archive/2006/02/21/read-configuration-data-from-hosted-wcf-services.aspx

    Kevin

  • Monday, February 26, 2007 4:31 PMWenlong Dong Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer
    Hi Kevin, using HostingEnvironment plus VirtualPathExtension is the right thing to map virtual paths to physical paths. This works fine for any IIS/WAS hosted services, even for Cassini. What other hosts are you talking about please?
  • Monday, February 26, 2007 4:59 PMKevinBurton Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     Wenlong Dong wrote:
    Hi Kevin, using HostingEnvironment plus VirtualPathExtension is the right thing to map virtual paths to physical paths. This works fine for any IIS/WAS hosted services, even for Cassini. What other hosts are you talking about please?

     

    If that is correct then that is my answer. Thank you.