关于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
1 | ISGuanWeiEntities contex = ConnectionStringDB.getISGuanWeiEntities(); //改为该对象 |
wcf-2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构