wcf 连接mysql_C# 外部WCF服务库如何获取系统数据库连接?

外部WCF服务库获取不到系统内部的数据库连接!以下称之为EntityManager.

我创建了一个外部的WCF服务库,然后将WCF服务库寄宿在Windows Service上进行部署。当我在系统内通过Form直接访问Form相关Task的时候,我可以直接在Task中获取到系统的EntityManager,从而在接口内部去实现数据库相关操作。

我现在遇到的问题是:当我的WCF服务库作为一个外部库进行部署时,将不会有系统Form去直接调用接口实现的Task,我自然也没法获得系统内部的EntityManager。这也就导致了我的接口无法完整运行。

当我用Form表单直接执行LoginJobTask可以获取到EntityManager,但是当整个WCF服务库单独部署出去的时候,我就获取不到了!

[SampleManagerTask("LoginJobTask")] // 将当前类标记为Task

public class LoginJobTask : SampleManagerTask // SampleManagerTask为所有Task的父类,数据库操作对象(下文中的EntityManager)也来自这个父类,

{

public string LoginSingleJobByWorkflow(string json)

{

ResponseSingle resp = ResponseUtil.GetDefaultResponse();

try

{

string errMsg = string.Empty;

// 校验Json数据是否合法

if (!JsonUtil.IsValid(json))

{

errMsg = string.Format("{0} JSON Data:{1}", ExceptionConstant.INVALID_JSON_DATA, json);

Logger.Error(errMsg);

return JsonUtil.ObjectToJsonStr(new ResponseSingle("", ResponseUtil.CODE_FAIL, ExceptionConstant.INVALID_JSON_DATA, errMsg));

}

// 将Json字符串转化为Json对象

JObject jObject = JsonUtil.JsonStrToJsonObject(json);

// 获取Type

JToken type = jObject[WebInterfaceWorkflowConfigPropertyNames.Type];

// 判断Type字段信息

if (JsonUtil.IsEmpty(type))

{

errMsg = string.Format("Property {0} do not exist.", WebInterfaceWorkflowConfigPropertyNames.Type);

Logger.Error(errMsg);

return JsonUtil.ObjectToJsonStr(new ResponseSingle("", ResponseUtil.CODE_FAIL, errMsg, errMsg));

}

// 获取调用Workflow的配置信息

IQuery queryWorkflowConfig = EntityManager.CreateQuery(TableNames.WebInterfaceWorkflowConfig);

queryWorkflowConfig.AddEquals(WebInterfaceWorkflowConfigPropertyNames.Type, type.ToString());

queryWorkflowConfig.AddAnd();

queryWorkflowConfig.AddEquals(WebInterfaceWorkflowConfigPropertyNames.Removeflag, false);

因为系统的底层实现以及大量源码都是美国人研发的,并且都做了封装。所以我现在也不清楚系统底层到底是如何往Task中注入EntityManager的。但是我觉得如果各位前辈有做过类似独立WCF服务库开发的,可能也会遇到类似问题,所以在此提问,看能否获得一些提示或启发。谢谢各位前辈!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值