C # программа, которая будет проходить через файл web.config - PullRequest
0 голосов
/ 14 октября 2011

Я пишу программу на C #, которая проверит, чтобы все соединения, которые у нее должны быть активными, основанные на его файле веб-конфигурации, были активными, а если нет, то попытались бы перезапустить соединение и сообщить хосту, если оно выходит из строя или проходит на делать это.

Я очень плохо понимаю файл web.config, я знаю, что это XML, и я думаю, что точки, которые я хочу видеть, являются активными, являются конечными точками.

В настоящее время я могу прочитать файл, но не могу просто пройти тест после "endpoint ="

Идея / цель программы состоит в том, чтобы я мог перезапустить соединение из моего веб-приложения с моей базой данных, если по какой-то причине оно прекратилось, и дать мне знать, что во время работы этой программы, что соединение было разорвано .

Program.cs

using System;
using System.IO;
using System.Linq;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Forms;
namespace webconfig
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());     
        }    
    }
}

Форма 1

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace webconfig
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        public void richTextBox1_TextChanged(object sender, EventArgs e)
        {
            RTBconsole.Text = "" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/" + DateTime.Now.Year + "\r\n\r\n";

            // create reader & open file
            string strFilename = "C:\\Sites\\EasyeServeIDSrv\\Web.config";
            FileStream fsVideos = new FileStream(strFilename,FileMode.Open,FileAccess.Read);
            System.Xml.XmlTextReader rdrXml = new System.Xml.XmlTextReader(fsVideos);

            StreamReader tr = new StreamReader("C:\\Sites\\EasyeServeIDSrv\\Web.config");

            do
            {
                String current = tr.ReadLine();
                // read a line of text
                if (current.Contains("endpoint") == false || current.Contains("</endpoint>") == false)
                {
                RTBconsole.AppendText("      "+ current.ToString());
            }else{

            }
            }while(!tr.EndOfStream);

            do
            {
                // Read an item and return true
                // Continue reading as long as ...
            } while (rdrXml.Read() == true); // ... as long as Read() returns true
            // Once Read() returns false, STOP!!!

            fsVideos.Close();
            Console.WriteLine();
            // close the stream
            tr.Close();
        }
    }
}

Ответы [ 3 ]

2 голосов
/ 14 октября 2011

Каждый раздел файла web.config соответствует классу, унаследованному от класса ConfigurationSection.Что-то вроде этого должно позволить вам прочитать каждый раздел web.config:

//get the configuration file
Configuration config = WebConfigurationManager.OpenWebConfiguration("..."); //path to config

//get smtpConfiguration section
ConfigurationSection section = config.GetSection("smtpConfiguration"); 
1 голос
/ 14 октября 2011

Всегда лучше манипулировать web.config, используя пространство имен System.configuration.

В thera есть несколько классов, которые читают / записывают строки подключения и настройки приложения при выполнении.

1 голос
/ 14 октября 2011

Вы должны использовать LINQ to XML , чтобы запросить у web.config интересующие вас элементы. Вот пример человека, пишущего в web.config с использованием LINQ to XML.

...