web服务器日志出现 /_vti_bin/owssvr.dll 与 /MSOffice/cltreq

Seeing /MSOffice/cltreq.asp in your logs?

As any good web developer should, I have all errors generated by my websites logged and emailed to me. I've been seeing a number of 404's lately with the following request:

/MSOffice/cltreq.asp?UL=1&ACT=4&BUILD=5606&STRMVER=4&CAPREQ=0

If you are seeing this in your web logs, its because your users have Microsoft Office installed, and the discussion bar turned on in IE. IE is querying the server to see whether it supports web discussions.

posted @ Wednesday, November 2, 2005 9:04 AM

红薯 发布于 2010/06/02 14:33 阅读 1K+  收藏 1  评论 2
经常在Web服务器的日志文件里看到下面这样的内容:

124.64.104.210 - - [02/Jun/2010:14:30:11 +0800] "GET /MSOffice/cltreq.asp?UL=1&ACT=4&BUILD=8164&STRMVER=4&CAPREQ=0 HTTP/1.1" 404 713 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"

用 Google 查了一下,结果如下(摘录):

发现原来是 IE 工具列上的「讨论」的关係。
如果网友有开启 IE 的「讨论」功能,
连到网站时就会自动去取得 /_vti_bin/owssvr.dll 和 /MSOffice/cltreq.asp 这两个档桉。
(这个「讨论」的功能,要安装 Microsoft Office 才会有。)

IE Toolbar - Discuss
实际测试看看,连到网页后点一下那个「讨论」的按钮,
再看 Apache 的 Log 档,果然出现上面的错误讯息。

void BreathPhaseDispose(void) { //s_EBreathPhs 此时还是当前相位,还没切换为新的相位 switch (s_EBreathPhs) { case BPHS_INSP: { //add by abc 排除气流抖动误触发等情况 // if (s_RespCalculations.InspTimeCnt < 0.2f / RESP_PARAM_SAMPLE_TIME || s_RespCalculations.InspTimeCnt > 10 / RESP_PARAM_SAMPLE_TIME) // { // break; // } s_RespParameters.flow_InspPeak = s_RespCalculations.InspPeakFlow;//减去泄漏而且滤波 s_RespParameters.flow_InspPeakRaw = s_RespCalculations.InspRawPeakFlow;//没有减去泄漏 s_RespParameters.p_Plat = FilterTwoPole_GetValue(&s_FilterPatientPressure); //FilterDelay_Get_Last_Value( &s_FilterDelayedPressure ); if (s_RespCalculations.InspTimeCnt > 0) { s_RespParameters.p_MeanInsp = s_RespCalculations.InspPressSum / s_RespCalculations.InspTimeCnt; s_RespParameters.p_SqrtMeanInsp = s_RespCalculations.InspSqrtPressSum / s_RespCalculations.InspTimeCnt; } s_RespParameters.VTI_Raw = s_RespCalculations.InspRawFlowSum * 1000.0f / 60.0f * RESP_PARAM_SAMPLE_TIME; //ml s_RespParameters.VTI = s_RespCalculations.InspFlowSum * 1000.0f / 60.0f * RESP_PARAM_SAMPLE_TIME; s_RespParameters.TimeInsp = s_RespCalculations.InspTimeCnt * RESP_PARAM_SAMPLE_TIME;//ms->s s_RespParameters.VTI_Leak = s_RespParameters.flowLeak_RT;//吸气漏气 ven_event_inspflowpeak_cal(s_RespParameters.flow_InspPeak, 1); break; } case BPHS_EXP: { //add by abc 排除气流抖动误触发等情况 // if (s_RespCalculations.ExpTimeCnt < 0.2f / RESP_PARAM_SAMPLE_TIME || s_RespCalculations.ExpTimeCnt > 10 / RESP_PARAM_SAMPLE_TIME) // { // break; // } s_RespParameters.flow_ExpPeak = s_RespCalculations.ExpPeakFlow; s_RespParameters.flow_ExpPeakRaw = s_RespCalculations.ExpRawPeakFlow; s_RespParameters.p_PEEP = FilterTwoPole_GetValue(&s_FilterPatientPressure); //FilterDelay_Get_Last_Value( &s_FilterDelayedPressure ); if (s_RespCalculations.ExpTimeCnt > 0) { s_RespParameters.p_MeanExp = s_RespCalculations.ExpPressSum / s_RespCalculations.ExpTimeCnt; s_RespParameters.p_SqrtMeanExp = s_RespCalculations.ExpSqrtPressSum / s_RespCalculations.ExpTimeCnt; } s_RespParameters.VTE_Raw = -s_RespCalculations.ExpRawFlowSum * 1000.0f / 60.0f * RESP_PARAM_SAMPLE_TIME; //ml s_RespParameters.VTE = -s_RespCalculations.ExpFlowSum * 1000.0f / 60.0f * RESP_PARAM_SAMPLE_TIME; // s_RespParameters.VTE = s_RespParameters.VTI; s_RespParameters.VTE = (u16)Avg_Filter(s_RespParameters.VTE, &VTE_Avg_Filter_Para);//problem s_RespParameters.TimeExp = s_RespCalculations.ExpTimeCnt * RESP_PARAM_SAMPLE_TIME;//ms->s s_RespParameters.VTE_Leak = s_RespParameters.flowLeak_RT;//呼气漏气 // Update minute ventilation and frequency // 更新呼吸时间环形缓冲区 s_RespCalculations.TotalBreathTimeCnt -= s_RespCalculations.BreathTimeCnt[s_RespCalculations.BreathID]; s_RespCalculations.BreathTimeCnt[s_RespCalculations.BreathID] = s_RespCalculations.InspTimeCnt + s_RespCalculations.ExpTimeCnt; s_RespCalculations.TotalBreathTimeCnt += s_RespCalculations.BreathTimeCnt[s_RespCalculations.BreathID]; // 更新潮气量环形缓冲区 s_RespCalculations.TotalVTE -= s_RespCalculations.VTE[s_RespCalculations.BreathID]; s_RespCalculations.VTE[s_RespCalculations.BreathID] = (INT32S)s_RespParameters.VTE; s_RespCalculations.TotalVTE += s_RespCalculations.VTE[s_RespCalculations.BreathID];//VTEproblem s_RespCalculations.BreathID += 1; if (s_RespCalculations.BreathID >= FMV_BREATHS)// 数组越界判断 { s_RespCalculations.BreathID = 0; } // 总呼气潮气量/总呼吸时间=每秒的潮气量*60=分钟通气量 s_RespParameters.MVE = (FP32)s_RespCalculations.TotalVTE / s_RespCalculations.TotalBreathTimeCnt / RESP_PARAM_SAMPLE_TIME * 60.0f / 1000.0f; //chg by abc 在第FMV_BREATHS个呼吸周期之前,取平均的呼吸个数不为FMV_BREATHS // RR=60/((Total/FMV)/1000) if(g_sVentRun.uBreathCount >= FMV_BREATHS) { s_RespParameters.RespRate = 60.0f / (FP32)s_RespCalculations.TotalBreathTimeCnt / RESP_PARAM_SAMPLE_TIME * FMV_BREATHS; } else { s_RespParameters.RespRate = 60.0f / (FP32)s_RespCalculations.TotalBreathTimeCnt / RESP_PARAM_SAMPLE_TIME * (g_sVentRun.uBreathCount + 1); } //通气以来的时间unit:s s_RespParameters.TimeVent = Vent_GetTherapyTime(); /* 2024.3.14 added by Chaoqi * Parameter "s_RespParameters.Apnea_Count" is used to store total apnea. * Added new parameter "Apnea_Temp" to instead of "s_RespParameters.Apnea_Count" here. */ if (s_RespParameters.TimeVent) { uint32 Apnea_Temp = 0; //通气以来的窒息次数 /* 2024.03.28 changed by Chaoqi * 2024.04.07 changed by Chaoqi * There will be an error,when parameter "s_RespParameters.Apnea_Count" is less than the sum of "OAI" and "CAI". * 2024.04.10 changed by Tianyongchang * Add option,the UIA,OAI,CAI and Hi data limilt can be canceled. */ s_RespParameters.Apnea_Count = ven_get_event_apnea_count(); s_RespParameters.Hypopnea_Count = ven_get_hypopnea_count(); if (s_RespParameters.Apnea_Count > (Vent_GetApneaCount(VEN_FOT_C) + Vent_GetApneaCount(VEN_FOT_O))) { Apnea_Temp = s_RespParameters.Apnea_Count - Vent_GetApneaCount(VEN_FOT_C) - Vent_GetApneaCount(VEN_FOT_O); } else { Apnea_Temp = 0; } /* 2025.05.19,changed by Chaoqi, * If therapy time more than an hour,display Apean and Hypopnea index */ if (s_RespParameters.TimeVent >= 3600) { s_RespParameters.UAI = (FP32)Apnea_Temp / (s_RespParameters.TimeVent / 3600); s_RespParameters.CAI = (FP32)Vent_GetApneaCount(VEN_FOT_C) / (s_RespParameters.TimeVent / 3600); s_RespParameters.OAI = (FP32)Vent_GetApneaCount(VEN_FOT_O) / (s_RespParameters.TimeVent / 3600); s_RespParameters.HI = (FP32)s_RespParameters.Hypopnea_Count / (s_RespParameters.TimeVent / 3600); } else { s_RespParameters.UAI = Apnea_Temp; s_RespParameters.CAI = Vent_GetApneaCount(VEN_FOT_C); s_RespParameters.OAI = Vent_GetApneaCount(VEN_FOT_O); s_RespParameters.HI = s_RespParameters.Hypopnea_Count; } // s_RespParameters.UAI = (FP32)Apnea_Temp / (s_RespParameters.TimeVent / 3600); //Number of apneas per hour // //如果时间小于1h,那么ai就等于窒息次数 // #if 0 // s_RespParameters.UAI = s_RespParameters.UAI > Apnea_Temp ? Apnea_Temp : s_RespParameters.UAI; // #endif // // //通气以来的中枢性窒息次数 // Apnea_Temp = Vent_GetApneaCount(VEN_FOT_C); // s_RespParameters.CAI = Apnea_Temp / (s_RespParameters.TimeVent / 3600); //Number of apneas per hour // //如果时间小于1h,那么cai就等于窒息次数 // #if 0 // s_RespParameters.CAI = s_RespParameters.CAI > Apnea_Temp ? Apnea_Temp : s_RespParameters.CAI; // #endif // // //通气以来的阻塞性窒息次数 // Apnea_Temp = Vent_GetApneaCount(VEN_FOT_O); // s_RespParameters.OAI = (FP32)Apnea_Temp / (s_RespParameters.TimeVent / 3600); //Number of apneas per hour // //如果时间小于1h,那么oai就等于窒息次数 // #if 0 // s_RespParameters.OAI = s_RespParameters.OAI > Apnea_Temp ? Apnea_Temp : s_RespParameters.OAI; // #endif // // s_RespParameters.HI = (FP32)s_RespParameters.Hypopnea_Count / (s_RespParameters.TimeVent / 3600); //Number of hypopnea per hour // //如果时间小于1h,那么hi就等于低通气次数 // #if 0 // s_RespParameters.HI = s_RespParameters.HI > s_RespParameters.Hypopnea_Count ? s_RespParameters.Hypopnea_Count : s_RespParameters.HI; // #endif } else { s_RespParameters.UAI = 0; s_RespParameters.CAI = 0; s_RespParameters.OAI = 0; s_RespParameters.HI = 0; } // s_RespParameters.AHI = s_RespParameters.UAI + s_RespParameters.CAI + s_RespParameters.OAI + s_RespParameters.HI; s_RespParameters.AHI = s_RespParameters.CAI + s_RespParameters.OAI + s_RespParameters.HI; AddTrigType(Vent_IsPatientTrig()); s_RespParameters.f_Trig = CountNumberOfPatientTrigs(s_RespParameters.RespRate); if (g_sVentRun.iSampleTime > VENT_SAMPLE_TIME) { if (ven_get_event_status() == VEN_EVENT_STATUS_HYPOPNEA) { g_sVentRun.iHiTrigger++; } else if (ven_get_event_status() == VEN_EVENT_STATUS_APNEA) { /* 2024.3.27 changed by Chaoqi */ g_sVentRun.iAiTrigger++; } } else if (g_sVentRun.iSampleTime < 60) { s_RespCalculations.MVE_LPF = s_RespParameters.MVE; } else { s_RespCalculations.MVE_LPF = s_RespCalculations.MVE_LPF * 0.95f + s_RespParameters.MVE * 0.05f; } break; } case BPHS_START: { s_RespParameters.p_PEEP = FilterDelay_Get_Last_Value(&s_FilterDelayedPressure); //FilterTwoPole_GetValue(&s_FilterPatientPressure); break; } default: { break; } } }
最新发布
11-29
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值