关于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 + "\ntextStatus=" + textStatus + "\nerrorThrown=" + 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  

转载于:https://www.cnblogs.com/ncellit/p/6702197.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值