欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

以服务的方式提供站点基础功能支持

发布时间:2025/7/14 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 以服务的方式提供站点基础功能支持 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Web站点除了提供内容展示,业务逻辑处理外,还有很多看不到的操作,如:错误日志,后台管理,权限分配,访问统计等。如果只有一个站点,完全可以根据需要逐步添加,但实际的情况是往往有多个子站点,这时这些重复的功能就可以以服务的方式提供了。

举个例子,我们需要统计执行慢的页面列表,简单的做法是:
1 在Global.asax 的 BeginRequest, EndRequest事件中记录执行时间,如果超过某个值,如2秒,就记录到数据库。
2 在后台管理增加 slowpage_list.aspx 页面用于查看执行慢的页面列表。

基本实现还是蛮简单的,如:

[Global.asax]

<%@ Application Language="C#" %>
<script runat="server">
     
protected void Application_BeginRequest(object sender, EventArgs e) {
        
// 记录开始时间
        this.Context.Items["page_request_starttime"= DateTime.Now;
    }

    
protected void Application_EndRequest(object sender, EventArgs e) {
       
// 最大用时,单位毫秒,根据需要指定多慢的页面需要记录
        const int maxTimeUse = 2000;
        
string url = HttpContext.Current.Request.Url.ToString();

        
// 页面处理用时
        int timeUse = (int)(DateTime.Now - (DateTime)this.Context.Items["page_request_starttime"]).TotalMilliseconds;

        
// 如果执行时间超过最大用时
        if (timeUse > maxTimeUse) {
            
// 记录执行慢的页面
            AddSlowPage(url, timeUse);
        }
    }
</script>
以及:
[slowpage_list.aspx]

代码略 ......

这样做的缺点是,各个站点只能以拷贝的方式重用slow_page_list.aspx,以及还要重复数据库建表等。

改进的做法是:
增加一个 service.yousite.com 公用服务站点,各个子站点有执行慢的页面时,往这个公用服务站点提交。

if (timeUse > maxTimeUse) {
   
// 当前站点标识
    string site = "site001";
    
string address = string.Format("http://service.yousite.com/add_slowpage.ashx?site={0}&timeUse={1}&url={2}",
                                    site, timeUse, url);
    
    
// 指定超时时间,并用异步方式提交执行慢的页面地址
    System.Net.HttpWebRequest client = System.Net.WebRequest.Create(address) as System.Net.HttpWebRequest;
    client.Timeout 
= 2000;
    client.ReadWriteTimeout 
= 2000;
    client.BeginGetResponse(
nullnull);
}

然后在 service 站点,提供查看的页面,根据site参数来查看指定站点的slow page。
http://service.yousite.com/slowpage_list.aspx?site=site001

同时这个页面可以很方便的以iframe的方式嵌入到各个子站点的后台。

就像开发时,要DRY(Don't Repeat Yourself)避免重复代码一样,在规划站点时,也要避免重复的基础功能建设,这样的好处不光是减少工作量,也能够更好的保证整体站点的一致与稳定。

转载于:https://www.cnblogs.com/jiyang/archive/2011/05/12/2044304.html

总结

以上是生活随笔为你收集整理的以服务的方式提供站点基础功能支持的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。