• 关于APIcloud对应C#的 wcf框架作为后台,实现多库功能


    首先,我是使用ajax原来的请求方式,并没有使用apicloud中封装的请求方式。

    前端代码:

     function makeRequest() {
                //alert("inside makeRequest()");
                var settings = {
                    type: "GET",
                    url: "http://192.168.0.105/Service1.svc/test",
                    dataType: "JSON",
                    error: function (XHR, textStatus, errorThrown) {
                        //alert("XHR=" + XHR + "
    textStatus=" + textStatus + "
    errorThrown=" + errorThrown);
                    },
                    success: function (data, textStatus) {
                        $("body").append(data);
                    }
                    ,
                    headers: {
                        "token": "TextServer"
                    }
                };
                $.ajax(settings);
            }

    后台接收方式呢,我这使用了EF框架,所以我会在实例化上下文时接收请求头数据,然后去中心库进行一个查询,拿到链接地址,然后将当前实例的地址更改,最后返回这个更改后的上下文实例,这样数据就查到了对应公司所对应的数据库中的数据。

    wcf-1

    ISGuanWeiEntities contex = ConnectionStringDB.getISGuanWeiEntities();//改为该对象
    

    wcf-2

      class ConnectionStringDB
    {
     public static ISGuanWeiEntities getISGuanWeiEntities()
    {
     ISGuanWeiEntities context = new ISGuanWeiEntities();
     
                 //var s =    System.Web.HttpContext.Current.Request.Headers;
                    System.ServiceModel.Web.IncomingWebRequestContext request = System.ServiceModel.Web.WebOperationContext.Current.IncomingRequest;
                     WebHeaderCollection headers = request.Headers;
                    //获取客户端请求的值(公司名)
                    string whereName = headers["token"];//token是我在前端请求头中设置的标识
                    //连接多库指挥中心数据库查找该公司的链接字符串
                    context.Database.Connection.ConnectionString = "中心数据库的链接地址;";
                   
                //--略过--通过查询中心库拿到对应的链接地址
                    //将链接字符串改为新的链接字符串
                    context.Database.Connection.ConnectionString = “新链接地址”
    
       //最终返回该对象
     return context;
    
    }
    }
    

      

    --还有个要注意,我这个自定义请求头'token'在IIS请求标头里面添加过的,我自己添加的,在IIS添加请求标头操作如下:

    第一步

    第二步

    参考:http://www.cnblogs.com/babietongtianta/p/6488985.html  

  • 相关阅读:
    Dev中出现Error 0: 操作成功完成。
    找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有没有鞍点。
    oracle 日常删除多余数据
    java程序练习:输入数字转换成中文输出(金额相关)
    linux压缩和解压文件命令
    一篇文章搞定Git——Git代码管理及使用规范
    读书心得(1)-20191108
    回表查询的说明
    Java 8新特性解读
    java-try catch中return在finally之前 还是之后执行
  • 原文地址:https://www.cnblogs.com/ncellit/p/6702197.html
Copyright © 2020-2023  润新知