none
ASP.NET网站程序使用vs调试运行数据库可以连接成功,在IIS上通过添加网站后就不能连接了 RRS feed

  • 问题

  •        大家好!ASP.NET网站程序使用vs调试运行数据库可以连接成功,在IIS上通过添加网站部署后就不能连接了。我视图通过把异常信息写入到日志文件的方式进行分析,vs调试运行可以生成日志文件,但是在IIS上通过添加网站部署的网站连日志文件都生成不了。我的连接数据库以及输出日志的代码如下:

    public class DBConnection
    {
    
        static StreamWriter myLog = new StreamWriter(@"D:\work\WaterConservancyGIS\bin\mylogfile.txt");
        public DBConnection()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }
    
        ~DBConnection()
        {
            myLog.Close();
        }
    
        public static void Log(StreamWriter log, string msg)
        {
            log.Write(DateTime.Now.ToString());
            log.Write(":");
            log.Write(msg);
            log.Flush();
        }
    
        protected static void ConnectSQL(SqlConnection conn)
        {
            if (conn.State == ConnectionState.Closed)
            {
                try
                {
                conn.Open();
                }
                catch (Exception e)
                {
                    Log(myLog,e.Message);
    //              throw new Exception("open database failed:" + e.Message);
                }
            }
            else if (conn.State == ConnectionState.Broken)
            {
                try
                {
                    conn.Close();
                    conn.Open();
                }
                catch (Exception e)
                {
                    Log(myLog, e.Message);
    //              throw new Exception("open database failed:" + e.Message);
                }
            }
        }
    
    }

        请问如何排查这种问题呢?


    前无古人,后无来者

    2020年9月20日 11:30

全部回复

  • Hi clever101, 

     

    你的问题可能是由于目标文件夹不允许IIS访问读写而导致的写文件失败。

    如果想定位问题,你应该在下面的代码中使用 try-catch语句,去catch IO的异常。

    public static void Log(StreamWriter log, string msg) {

    // 使用try-catch这里 log.Write(DateTime.Now.ToString()); log.Write(":"); log.Write(msg); log.Flush(); }

     

    另外 ,如果你想追踪上面的异常 ,log日志打印的目标最好是网站页面或者有权限的文件夹。

     

    希望回答能够对你有帮助。

    Best regards,

    Sean

    2020年9月21日 9:26