zoukankan      html  css  js  c++  java
  • 关于WCF访问跨越站点获取文件路径的AppDomain方法区别与HttpContext

    第一:跨域,获取其他站点文件路径的方法:System.AppDomain.CurrentDomain.BaseDirectory

    第二:对于开发人员来说,他们并不知道网站会被部署在哪个目录下,因此不可能写出绝对路径,他们只知道相对于网站根目录的相对路径,为了定位文件路径,只能调用HttpContext.Current.Request.MapPath或者 HttpContext.Current.Server.MapPath来获取文件的绝对路径。如果HttpContext.Current返回了null,那该如何如何访问文件?

    答案:System.AppDomain.CurrentDomain.BaseDirectory

    第三:安全使用 HttpContext 

    HttpContext context = HttpContext.Current;
        if( context != null ) {
            // 能运行到这里,就肯定是在处理ASP.NET请求,我们可以放心地访问Request的所有数据
            sb.AppendLine("Url:" + context.Request.RawUrl);
    
            // 还有记录什么数据,您自己来实现吧。
        }
    就是一个判断,解决了一些为null 的问题,所以请忘记下面这类不安全的写法吧

    第四:总结HttpContext: 当前线程是指与【当前请求】相关的线程。

    1. 定时器的回调。
    2. Cache的移除通知。
    3. APM模式下异步完成回调。
    4. 主动创建线程或者将任务交给线程池来执行。 

    在1,2,3情况中,访问HttpContext.Current将会返回 null 。

    3.的解决方案答案有二种:

    1. 在类型中添加一个字段来保存HttpContext的引用(异步开始前)。
    2. 将HttpContext赋值给BeginXXX方法的最后一个参数(object state)

    建议优先选择第二种方法,因为可以防止以后他人维护时数据成员被意外使用。

    4.本身不是当前线程,所以不必讨论。

    ths:http://www.cnblogs.com/fish-li/archive/2013/04/06/3002940.html


  • 相关阅读:
    Webpack笔记(三)——一款破产版脚手架的开发
    Google C++命名规范
    视觉词袋模型(BOVW)
    机器学习之四:决策树
    Zernike不变矩
    互联网产品各阶段的标准流程文档
    机器学习之三:logistic回归(最优化)
    Python
    机器学习之二:K-近邻(KNN)算法
    Python学习之二:Python 与 C 区别
  • 原文地址:https://www.cnblogs.com/lei2007/p/3045757.html
Copyright © 2011-2022 走看看