将通过web.config文件的C#程序

时间:2011-10-14 17:50:53

标签: c# .net xml web-services

我正在编写一个C#程序,它将检查以确保它应该根据它的Web配置文件激活的所有连接都是活动的,如果不是,直到尝试重新启动连接并告诉主机它是否失败或通过这样做。

我对web.config文件了解甚少,我知道它是XML,我认为我想看到的点是活动的终点。

目前我能够读取文件,但无法在“endpoint =”

之后获得测试

该程序的想法/目标是让我能够重新启动从我的Web应用程序到我的数据库的连接如果由于某种原因它丢弃并让我知道我在运行此程序时连接已关闭

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 个答案:

答案 0 :(得分:2)

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 :(得分:1)

您应该使用LINQ to XML查询web.config感兴趣的元素。使用LINQ to XML写入web.config的人的Here is an example

答案 2 :(得分:1)

使用命名空间System.configuration操作web.config总是更好。

thera中有一些类在执行时读取/写入连接字符串和应用程序设置。