我有一个WCF服务(C#),它有大约10个方法5用于获取数据(.NET数据集)和5个用于更新数据(.Net Dataset)。
方法示例:
// getting data from Method
public DataSet GetEmployeeContractInfo(Guid uid)
{
DataSet ds = null;
Database db = InfoTacto.Framework.WebServices.Common.GetDatabase();
using (DbCommand cmd1 = db.GetStoredProcCommand("sp_employee_contractinfo_get"))
{
db.AddInParameter(cmd1, "employeeuid", DbType.Guid, uid);
ds = db.ExecuteDataSet(cmd1);
}
if (ds.Tables.Count > 0)
{
ds.Tables[0].TableName = "contract_info";
}
return ds;
}
/// <summary>
///
/// </summary>
/// <param name="ds"></param>
/// <returns></returns>
public bool UpdateEmployeeContractInfo(DataSet ds)
{
bool returnVal = true;
Database db = Common.GetDatabase();
DbConnection conn = db.CreateConnection();
conn.Open();
DbTransaction trans = conn.BeginTransaction();
try
{
if (ds != null && (
(ds.Tables.Contains("contract_info") && ds.Tables["contract_info"].Rows.Count > 0)
)
)
{
foreach (DataRow dr in ds.Tables["contract_info"].Rows)
{
if (dr.RowState == DataRowState.Modified || dr.RowState == DataRowState.Added)
{
using (DbCommand cmd1 = db.GetStoredProcCommand("sp_employee_contractinfo_change"))
{
db.AddInParameter(cmd1, "employeeuid", DbType.Guid, dr["employeeuid"]);
//... all other parameters
db.ExecuteNonQuery(cmd1,trans);
}
}
}
}
trans.Commit();
}
catch
{
trans.Rollback();
returnVal = false;
}
finally
{
// Cleanup
conn.Close();
}
return returnVal;
}
我的20位用户将通过 celular 调制解调器使用 WIFI ,因为他们位于无法访问传统WIFI的位置,因此我需要跟踪带宽是多少使用我的WCF服务来获取数据和通过方法上传数据,这样如果我有这些信息我真的可以知道他们是否消耗了WCF Service
跟踪的带宽,然后他们正在查看视频等。人力资源部门可以采取行动。
有任何线索吗?在将dataset
发送到客户端之前,我正在考虑检查每个dataset
对象的大小,然后将该值存储到数据库表中,并在从客户端接收数据集时也这样做。