在WCF中调用Server.MapPath 获取服务发布目录路径

在WCF中调用Server.MapPath 获取服务发布目录路径

在WCF中想使用Server.Map获取当前服务发布目录的绝对路径。可是在调试时却发现:

"System.Web.HttpContext.Current.Server.MapPath("..." + filename);"

"当没有开启ASP.NET相容模式时(aspNetCompatibilityEnabled="true"),WCF不支持HttpContext, HttpApplication,大部分文章都建议修改<serviceHostingEnvironment aspNetCompatibilityEnabled="true">使WCF可使用ASP.NET传统做法。"

最后有两种解决方法:

string t1 = System.Web.HttpContext.Current.Server.MapPath("~");

//以上写法在WCF未开aspNetCompatibilityEnabled时,

//会因HttpContext.Current == null发生错误       

string t2 = System.Web.Hosting.HostingEnvironment.MapPath("~");

//以上写法在WCF中使用没有问题

1. Application.StartupPath——获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。   
2. Environment.CurrentDirectory——获取和设置当前目录(即该进程从中启动的目录)的完全限定路径,只是"当前"目录,不一定是exe文件所在的目录。在用FileOpenDialog选择一个文件以后这个目录就跟着发生改变了。   
3. Application.ExecutablePath——获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
4。System.AppDomain.CurrentDomain.BaseDirectory——获取基目录,它由程序集冲突解决程序用来探测程序集。(windows服务中使用)

Ref: http://www.cnblogs.com/guohu/archive/2012/10/20/2732199.html

最新文章

  1. 国家以及国家语言的json数据格式,提供给网友参考。
  2. jsp编程
  3. CSS3初学篇章_1
  4. [原创]Net实现Excel导入导出到数据库(附源码)
  5. C++:FMC 错误
  6. 来自 Github 的图形化 Git 使用教程
  7. Redis源代码分析-内存数据结构intset
  8. 比float更好的页面布局inline-block
  9. [IIS]win7下怎么安装IIS
  10. PHP中Snoopy类的使用
  11. 17.解释器模式(Interpreter Pattern)
  12. 虚幻开放日2017ppt
  13. linux 2.6.32文件系统的inode
  14. c++ 文件增加#ifndef、#define 和 #endif 语句的意义
  15. 精品绿色便携软件 &amp; 录制操作工具
  16. Java回顾之多线程
  17. Mybatis学习---Mybatis分页插件 - PageHelper
  18. [原]Android Studio导入外部项目找不到对应的sdk解决办法
  19. javascript 判断对象的内置类型
  20. 大规模分布式数据处理平台Hadoop的介绍 一种可靠、高效、可伸缩的处理方案

热门文章

  1. 正试图在 os 加载程序锁内执行托管代码
  2. 企业级架构 MVVM 模式指南 (WPF 和 Silverlight 实现) 译(1)
  3. Morris 轻量级 图表
  4. 学在LINUX下编程(各种情况比较详细)
  5. spring通过注解方式依赖注入原理 (私有成员属性如何注入)
  6. Java开发桌面程序学习(九)——JavaFxTemplate JavaFx模版 更简单进行JavaFx程序开发
  7. JavaScript学习笔记(2)
  8. jQuery入门——选择器
  9. Logback详细整理,基于springboot的日志配置
  10. Java多线程(五):死锁