网站安装打包 webconfig修改[三]

news/2024/5/12 13:46:40/文章来源:https://blog.csdn.net/weixin_33756418/article/details/91966743

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

在net中,在System.Configuration.ConfigurationManager中,提供了几个静态方法,用来修改配置文件。

如:System.Configuration.Configuration config = System.Configuration.ConfigurationManager.OpenMachineConfiguration();

获得应用程序下的配置文件,之后再用config进行操作。

如果是在web中,那就是操作webconfig了!不过现在在winform中,就成了操作app.config了。

 


 

于是,我选择了还是以操作xml的方式来修改webconfig。

这里写了几个类,主要也是模仿config的操作方式。代码如下:

 

05233752_P7wC.gif代码
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Xml;
namespace  IISHelper
{
    
public   class  WebConfigHelper : IDisposable
    {
        
private   bool  loadIsOK;
        
///   <summary>
        
///  加载是否成功
        
///   </summary>
         public   bool  LoadIsOK
        {
            
get  {  return  loadIsOK; }
            
set  { loadIsOK  =  value; }
        }

        
private  XmlDocument xDox  =   new  XmlDocument();
        
private   string  configPath  =   string .Empty;
        
public  WebConfigHelper( string  webconfigPath)
        {
            
try
            {
                xDox.Load(webconfigPath);
                configPath 
=  webconfigPath;
                loadIsOK 
=   true ;
            }
            
catch  { loadIsOK  =   false ; }
            
        }
        
public  WebConfigAppSetting AppSetting
        {
            
get
            {
                XmlNode xNode
= xDox.SelectSingleNode( " //configuration/appSettings " );
                
if (xNode == null )
                {
                    
return   null ;
                }
                
return   new  WebConfigAppSetting( ref  xNode);
            }
        }
        
public  WebConfigConnectionStrings ConnectionStrings
        {
            
get
            {
                XmlNode xNode 
=  xDox.SelectSingleNode( " //configuration/connectionStrings " );
                
if  (xNode  ==   null )
                {
                    
return   null ;
                }
                
return   new  WebConfigConnectionStrings( ref  xNode);
            }
        }
        
public   bool  Save()
        {
            
try
            {
                xDox.Save(configPath);
                
return   true ;
            }
            
catch  { }
            
return   false ;
        }
        
#region  IDisposable 成员
        
public   void  Dispose()
        {
            xDox 
=   null ;
        }
        
#endregion
    }
    
public   abstract   class  WebConfigBase
    {
        
protected  XmlNode node;
        
public    void  Add( string  key,  string  value){}
        
public   abstract   void  Set( string  key,  string  value);
        
public   abstract   string  Get( string  key);
        
public    void  Remove( string  key,  string  value){}
    }
    
public   class  WebConfigAppSetting : WebConfigBase
    {
        
internal   WebConfigAppSetting( ref  XmlNode xNode)
        {
            node 
=  xNode;
        }
        
public   override   void  Set( string  key,  string  value)
        {
            
foreach  (XmlNode addNode  in  node.ChildNodes)
            {
                
if  (addNode.Attributes  !=   null   &&  addNode.Attributes[ " key " ].Value  ==  key)
                {
                    addNode.Attributes[
" value " ].Value  =  value;
                    
break ;
                }
            }
        }
        
public   override   string  Get( string  key)
        {
            
foreach  (XmlNode addNode  in  node.ChildNodes)
            {
                
if  (addNode.Attributes  !=   null   &&  addNode.Attributes[ " key " ].Value  ==  key)
                {
                  
return   addNode.Attributes[ " value " ].Value;
                }
            }
            
return   "" ;
        }
    }
    
public   class  WebConfigConnectionStrings : WebConfigBase
    {
        
internal   WebConfigConnectionStrings( ref  XmlNode xNode)
        {
            node 
=  xNode;
        }
        
public   override   void  Set( string  key,  string  value)
        {
            
foreach  (XmlNode addNode  in  node.ChildNodes)
            {
                
if  (addNode.Attributes  !=   null   &&  addNode.Attributes[ " name " ].Value  ==  key)
                {
                    addNode.Attributes[
" connectionString " ].Value  =  value;
                    
break ;
                }
            }
        }
        
public   override   string  Get( string  key)
        {
            
foreach  (XmlNode addNode  in  node.ChildNodes)
            {
                
if  (addNode.Attributes  !=   null   &&  addNode.Attributes[ " name " ].Value  ==  key)
                {
                    
return  addNode.Attributes[ " connectionString " ].Value;
                }
            }
            
return   "" ;
        }
    }
}

 

 下面看一下界面的操作方法:

 

05233752_P7wC.gif界面操作方式
 WebConfigHelper allConfig  =   new  WebConfigHelper(allConfigPath);
            
if  (allConfig.LoadIsOK )
            {
                WebConfigAppSetting app 
=  allConfig.AppSetting;
                
if  (app  !=   null )
                {
                  
  app.Set( " MosFTPUserName " , txtMosFtpUserName.Text);
                    app.Set(
" MosFTPPassword " , txtMosFtpPassword.Text);
                    app.Set(
" ProvideFor " , cbbProvideFor.Text);
                 
}
                WebConfigConnectionStrings connString 
=  allConfig.ConnectionStrings;
                
if  (connString  !=   null )
                {
                    connString.Set(
" Conn " , txtConn.Text);
                }
                allConfig.Save();
                allConfig.Dispose();

               
 MessageBox.Show( " 配置文件修改成功! " );
            }

 

 这里提示一下,web.config中,不要带名称空间,就是xmlns="xxxx一大堆的";

 

打完,收工!

转载于:https://my.oschina.net/secyaher/blog/274355

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_824152.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

8款插件使你的网站移动响应

下面是一些有用的插件&#xff0c;另一个伟大的收集。这一次&#xff0c;我们的重点是前8插件&#xff0c;使你的网站移动响应。插件来这里是为了加快工作流程&#xff0c;简单的工作流程&#xff0c;从而提高了生产力。这些天来&#xff0c;这是你的敏感的网站必须工作在台式机…

q_i7p_co/index_php rmvb_某返利网站admin目录index.php文件混淆加密算法分析

---恢复内容开始---文件已经加密&#xff0c;可以在此下载&#xff1a;index.php文件内容打开大概如此&#xff1a;简单字符替换之后&#xff0c;发现字符串用base64_decode仍无法解码。找到一个解码网站&#xff1a;找源码解码后的文件如下&#xff1a;下载地址尾部仍然有大量…

网站的数据库怎么上传到服务器,网站的数据库怎么上传到服务器

网站的数据库怎么上传到服务器 内容精选换一换GaussDB(DWS) 支持多数据源高效入库&#xff0c;典型的入库方式如下所示。详细指导请参见《数据仓库服务数据库开发指南》中的导入数据。从OBS导入数据数据上传到OBS对象存储服务中&#xff0c;再从OBS中导入&#xff0c;支持CSV&a…

opencart 网站电脑可以访问 手机端访问域名被重写

在header.php 删除这些代码转载于:https://www.cnblogs.com/SherryLovesCode/p/6645111.html

html中使用什么标签做的导航栏_网站导航:7个最佳实践,设计技巧和警示

一些小的事物可以创造大的变化&#xff0c;网站导航栏就是一个很好的例子。导航的结构和标签可能会对结果产生巨大影响&#xff0c;原因如下&#xff1a;导航会影响流量&#xff1a;你的网站在搜索引擎中的排名高低会影响你从搜索中获得的流量量的多少导航会影响转化&#xff1…

网站二次开发如何防止别人打包源码_建站公司不给网站源码和代码怎么办?

建站公司不给网站源码的纠纷由来已久&#xff0c;今天正好我们标兵seo的客户因为网站被黑导致和建站公司产生纠纷最后我们帮助下拿回了网站源码。为避免企业建站踩雷今天我们来聊聊如何避免建站公司不给网站源代码的问题。建站分类说起建站我们要区分一下哪些情况不会给源码。自…

腾讯云iis8.5新建网站无法访问_腾讯云服务器搭建 Typecho 博客

云服务器设置首先肯定要先有一台云服务器了&#xff0c;可以看看哪家优惠力度比较大&#xff0c;然后选择哪家。我这里购买的腾讯云&#xff0c;安装的 Centos 系统。所以后边的教程也是以腾讯云为例&#xff0c;其他家的也都大同小异。为了安全和方便我们先把服务器的密码改了…

asp站点服务器,ASP网站搭建 ASP服务器搭建 教程

asp现在或许用的人很少了&#xff0c;但是不代表没有人用。无论是ASP网站搭建还是ASP服务器搭建其实都差不多&#xff0c;区别不是很大。搭建asp的方法也很多&#xff0c;例如&#xff1a;IIS、AspWebServer、小旋风等。我们只需要掌握一两种就可以了。下面给大家简单分享一下&…

电商网站开发记录(一) 项目初始化

新建一个maven -achetype-webapp项目,建好完善后基本的目录,然后配置tomcat,在deployment里引入artifact,第一次建的时候发现没有artifact,可能是module之类的没有初始化好,当时也没有吧maven的依赖import changes,不知道默认的webapp模板会不会自动引入初始的依赖,第二次建的时…

价值匹配策略SEO

在解释这个策略之前&#xff0c;我们首先要了解&#xff0c;什么是有价值的东西。100元对你也许很有价值&#xff0c;但是对于百万富翁来说&#xff0c;也许根本不值得一提&#xff1b;小米手机对你来说很有价值&#xff0c;但是对于苹果手机爱好者来说&#xff0c;小米要差很多…

如何用个人电脑发布网站到外网

自己用自己的电脑搭建了Apache服务器&#xff0c;在内网可以访问&#xff0c;但外网不行&#xff0c;怎么办呢&#xff1f;下面就来说说吧&#xff01;分类&#xff1a; 网站建设自己搭建一个服务器很简单&#xff0c;用PHPstudy是个不错的选择&#xff0c;百度下教程是一大把&…

如何通过Python暴力破解网站登陆密码

首先申明&#xff0c;该文章只可以用于交流学习&#xff0c;不可以用于其他用途&#xff0c;否则后果自负。 现在国家对网络安全的管理&#xff0c;越来越严&#xff0c;但是还是有一些不法网站逍遥法外&#xff0c;受限于国内的人力、物力&#xff0c;无法对这些网站进行取缔。…

基于php的购物网站源代码,[内附完整源码和文档] 基于PHP的网上购物系统设计与实现...

摘 要随着Internet技术的发展&#xff0c;人们的日常生活已经离不开网络。未来社会人们的生活和工作将越来越依赖于Internet技术的发展&#xff0c;也将越来越数字化、网络化、电子化、虚拟化。电子商务也随着网络的发展日益和人们的生活贴近。Internet的发展历程以及目前的应用…

大型分布式网站架构:缓存在分布式系统中的应用

缓存是分布式系统中的重要组件&#xff0c;主要解决高并发&#xff0c;大数据场景下&#xff0c;热点数据访问的性能问题。提供高性能的数据快速访问。 一、缓存概述 缓存是分布式系统中的重要组件&#xff0c;主要解决高并发&#xff0c;大数据场景下&#xff0c;热点数据访问…

用正则扒网站图片_推荐 12 个学习前端必备的神仙级工具类项目与网站

今天给大家推荐的是平时学习前端时&#xff0c;经常用到的一些辅助工具类网站。1. codelf有一种痛&#xff0c;不是程序员可能不懂&#xff0c;但如果是程序员一定懂&#xff0c;那就是给变量或函数命名。随着项目越来越复杂&#xff0c;变量和函数数量越来越多&#xff0c;英语…

按钮做页面调转_自媒体人如何自己建立一个手机网站,超简单,任何人都能做...

随着移动互联网的兴起&#xff0c;越来越多的公司、个人把展示的内容转到了手机网站上&#xff0c;学会制作手机网站就成了大家关注的热点。传统的网页制作工具制作电脑端的网站功能很强大&#xff0c;但手机网站由于手机屏幕大小和CPU处理能力较弱&#xff0c;对网站的要求与传…

html静态网页模板_静态与动态链接:哪种最适合SEO?

关于动态链接与静态链接的争论在行业中引起越来越多的争议&#xff0c;每个SEO人员都对哪种类型的链接最适合SEO有自己的看法。然而我们首先来了解一下基本概念。动态或静态链接到底是什么&#xff1f;静态链接是具有永久不变的网页。例如&#xff0c;您的首页网址可能是静态链…

linux中关于磁盘配额的描述,Linux磁盘配额 - Linux操作系统基础进阶练习题_Linux教程_Linux公社-Linux系统门户网站...

Linux操作系统基础进阶练习题Linux磁盘配额[日期&#xff1a;2009-06-01]来源&#xff1a;Linux社区作者&#xff1a;Linux编辑[字体&#xff1a;大 中 小]1)建立测试组gtest,测试用户test1,test2,test3以上两个测试用户的初始组为gtest参考答案:groupadd gtestuseradd -m -g g…

struts2+hibernate学习之实现网站留言板和好友互相添加功能

前面我将自己添加好友的思路&#xff0c;以及测试做好了&#xff0c;这里放在一起来回顾自己的思路和中间遇到问题&#xff1a;先看结果&#xff0c;╭(╯^╰)╮界面是有点说不过去。。。。 这里不再说留言板的显示具体实现过程&#xff0c;留言表有两个外键&#xff0c;对应用…

网站的中英文切换--i18next

这两天公司让我做公司官网&#xff0c;就是几个静态页面。我都不好意思说自己是Java开发了&#xff0c;年后来公司基本上自己做毕业设计才写Java代码。在公司基本没有写过Java的东西&#xff0c;我都怀疑公司是不是看我Java太菜&#xff0c;让我以后就做前端了。。。然后我前端…