zoukankan      html  css  js  c++  java
  • 牛腩购物33:发布网站,将网站上传到*,讲数据库发布到远程服务器,如何在服务器上开数据库,更换电脑后微软企业库报错,网站异常后发送错误信息到指定邮箱,设置错误页

    当我们在一台电脑上编写代码,然后我们更换到另外一台,如果是有使用微软企业库,是会报错的,需要导入微软企业库的5个dll,可以放在bin文件夹里面,记得要在DAL层上对 dll 进行引用

    在 E:\Program Files (x86)\EntLib50Src\bin  文件夹里面

    1:Microsoft.Practices.ServiceLocation.dll

    2:Microsoft.Practices.EnterpriseLibrary.Data.dll

    3:Microsoft.Practices.EnterpriseLibrary.Common.dll

    4:Microsoft.Practices.Unity.dll

    5:Microsoft.Practices.Unity.Interception.dll

    这样才能完全使用微软企业库。

    知识点二:网站异常后发送错误信息到指定邮箱

    如果我们在使用网站的时候,网站报错,如何获取这些信息呢? 牛叉一点的,可以使用 Log4net  来获取日志,这里我们使用 Application_Error事件

    
    
    protected void Application_Error(object sender, EventArgs e)
            {
                //在出现未处理的错误时运行的代码
                Exception objErr = Server.GetLastError().GetBaseException();
                string time = DateTime.Now.ToString();
                string error = "";
                error += "<strong>异常信息: </strong>" + objErr.Message + "<br>";
                error += "<strong>异常发生时间:</strong>" + time + "<br>";
                error += "<strong>IP: </strong>" + Request.UserHostAddress + "<br>";
                error += "<strong>发生异常页: </strong>" + Request.Url.ToString() + "<br>";
                string url_re = "";
                if (Request.UrlReferrer != null)
                {
                    url_re = Request.UrlReferrer.ToString();
                }
                error += "<strong>上次请求的URL: </strong>" + url_re + "<br>";
                error += "<strong>堆栈跟踪: </strong><br>" + objErr.StackTrace.Replace("\r\n", "<br>") + "<br>";
    
    
                if (!objErr.Message.Contains("不存在"))
                {
                    Utility.email.SendMail("网站有点小问题,请查看" + time, error, "17270@qq.com", "9102@qq.com", "9102@qq.com", "密码", "smtp.qq.com");
                }
            }

    发送邮件的代码

    /// <summary>邮件发送类
        /// 
        /// </summary>
        public class email
        {
             //using System.Net.Mail;
             // using System.Net;
    
            /// <summary>发送email,默认是25端口.用法:SendMail("邮件标题", "你的密码是:" , 收件人地址, 
    "发信人完整邮箱地址", "发信人完整邮箱地址", "密码", "smtp.qq.com(QQ的smtp地址,不同的域名邮箱地址不通)")
            /// 
            /// </summary>
            /// <param name="title">邮件标题</param>
            /// <param name="body">邮件内容</param>
            /// <param name="toAdress">收件人</param>
            /// <param name="fromAdress">发件人</param>
            /// <param name="userName">发件用户名</param>
            /// <param name="userPwd">发件密码</param>
            /// <param name="smtpHost">smtp地址</param>
            public static void SendMail(string title, string body, string toAdress, string fromAdress,
                                  string userName, string userPwd, string smtpHost)
            {
                try
                {
                    MailAddress to = new MailAddress(toAdress);
                    MailAddress from = new MailAddress(fromAdress);
                    System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(from, to);
                    message.IsBodyHtml = true; // 如果不加上这句那发送的邮件内容中有HTML会原样输出 
                    message.Subject = title; message.Body = body;
                    SmtpClient smtp = new SmtpClient();
                    smtp.UseDefaultCredentials = true;
                    smtp.Port = 25;
                    smtp.Credentials = new NetworkCredential(userName, userPwd);
                    smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                    smtp.Host = smtpHost;
                    //message.To.Add(toAdress);  //用 To.Add方法能增加收件箱的号码
                    smtp.Send(message);
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
    
        }

    知识点三:设置网站错误页,当网站报错的时候,页面跳转到错误页 

    <!--设置错误页-->
          <customErrors mode="On" defaultRedirect="~/error.aspx"></customErrors>
     
    image 
     

    知识点四:如果我们的项目是用 asp.net 4.0制作的,但是空间是 asp.net 3.5,这个时候如何对项目进行转换呢?
    需要对你项目里面的各个层,进行一个转换成 .net 3.5
    image image 
    我们重新选择为 3.5 即可
    image 
    image image 
    image 
    如果是asp.net 4.0转成 .net 3.5之后,还需要去 web.config里面,删除 httpRuntime requestValidationMode=”2.0” 这一行
    image  
     
    知识点四:如何发布网站?  我们选中web层,右键  发布,这样其他的DAL层,Model层和Utility层的cs代码会变成bin文件夹里面的dll文件。web层的cs文件也会变成dll
    如果是vs2010,的发布是这样的
    image 
    image
    image  
    image 
    然后开始上传
    image 
    如果是vs2011,是这样的(vs2011的中文版到了这一步,居然是英文的,坑爹··)
     
    image 
    image 
    image 
     
    记得是选择 release  而不是 debug。因为  release 是对网页里面的程序进行了优化了的
     
    image 
    今天发布的时候,总是报一个编辑器的错误,如图,提示一个图片,拷贝的时候,没找到,我进了文件夹,发现里面是空的,根本就没有,但是为什么会报错呢?
    image 
    于是我在vs里面打开web层的文件夹,发现还真的有一张图片,估计是以前做测试的时候有存在,但是可能是当时直接去文件夹删除了,而没有在vs里面删除
    image   选中,手动删除,再次发布,成功。image 
     
    我们去文件看看,选中文件,并上传到 服务器上。
    image 
     
     
  • 相关阅读:
    退背包
    杜教筛BM
    Petya and Array CodeForces
    AC自动机模板
    KMP模板
    Docker系列器九:docker-compose与docker-compose.yml语法
    Fabric的简单Web应用
    ubuntu防火墙
    ubuntu16.04 HyperLedger Fabric 1.2.0 开发环境搭建
    crypto-config.yaml
  • 原文地址:https://www.cnblogs.com/iceicebaby/p/2491930.html
Copyright © 2011-2022 走看看