/*十有三博客*/
  • 首页
  • 关于本站
  • 网站地图
  • RSS订阅

C#解决IIS域名批量绑定

2016-06-23 十有三 0 浏览:1万+ .NET技术 | 网站建设运维 C# | 服务器

由于业务需要,IIS要绑定几千个域名,如果通过界面手动绑定域名肯定是行不通的,于是写了个小工具来解决IIS批量绑定域名的问题。其实思路很简单,就是直接操作IIS的配置文件。

PS:IIS配置文件一般都是在C:\Windows\System32\inetsrv\config\applicationHost.config

大概的思路是这样的,我们先了解IIS域名绑定的语法规则,再通过编写C#程序批量操作获取正确的配置字符串,最后只要将结果复制到服务器上的配置文件即可,这样就实现了批量域名绑定。

先说下环境,服务器系统是windows server 2012 R2,IIS版本为8.5,使用C#编写控制台应用程序,最终将结果输出到txt文本中。IIS域名绑定的配置语法如下:

<binding protocol=\"http\" bindingInformation=\"{IP地址}:{端口}:{域名}\" />

可以点此下载范例(范例是使用VS2013开发)

这里直接上代码:

static void Main(string[] args)
{
    //演示中的文本都放在当前项目路径"bin\Debug\data"目录下
    string directory = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "data/");            
    string pathRead = Path.Combine(directory, "需要批量绑定的域名文本.txt");
    string pathWrite = Path.Combine(directory, "最终获取的IIS域名配置文本.txt");

    //IIS配置文件绑定域名的格式:<binding protocol=\"http\" bindingInformation=\"{IP地址}:{端口}:{域名}\" />
    //注意:IP地址和端口号要根据自己服务器配置来更改
    string bindFormat = "<binding protocol=\"http\" bindingInformation=\"192.168.1.1:80:{0}\" />";

    //读取并生成
    Console.WriteLine("开始生成批量域名绑定配置文本--------------------------------");
    List<string> resultList = new List<string>();
    using (StreamReader sr = new StreamReader(pathRead, Encoding.UTF8))
    {
        string temp = string.Empty;
        while (sr.Peek() >= 0)
        {
            temp = sr.ReadLine();
            if (string.IsNullOrWhiteSpace(temp))
            {
                continue;
            }
            temp = string.Format(bindFormat, temp);
            resultList.Add(temp);
            Console.WriteLine(temp);
        }
    }

    //将结果写入到txt文本中
    using (FileStream fs = new FileStream(pathWrite, FileMode.Create, FileAccess.Write))
    using (StreamWriter sw = new StreamWriter(fs))
    {
        foreach (string domain in resultList.Distinct().ToList())
        {
            sw.WriteLine(domain);
        }
    }
    Console.WriteLine("操作结束,一共处理了{0}条域名,按任意键结束------------------", resultList.Count());
    Console.ReadKey();
}

结果演示:

C#控制台演示批量域生成结果

范例只取8条域名做测试,实际遇到的都是成百上千条域名要批量绑定

最终结果输出到txt文本中,我们可以很容易将内容复制出来:

最终将批量域名绑定的配置字符串保存到txt文本中

注意:批量绑定域名的操作一定不能有重复的设置,否则可能造成IIS或当前网站崩溃!!!代码中虽然有过滤重复的域名,但是不排除与配置文件原本的域名有冲突,所以一定要仔细检查下。
如果对IIS配置文件不熟悉的话,建议操作前一定要先进行备份,或者在其他测试服务器上先测试!安全第一!

作者:十有三

出处:https://shiyousan.com/post/636022975388168065

版权声明:本文采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请声明出处或保留此段声明。


  • 上一篇: IIS 8.5的配置文件存放路径
  • 下一篇: 解决VS2013编码遇到无法嵌入互操作类型“ChinaPay_NET.NetPayClientClass”请改用适用的接口的问题

相关文章
  • 禁止二级域名被搜索引擎蜘蛛抓取的思路
  • 解决"在页面head部分没有发现字符集定义,请增加该说明"的问题
  • 网站用户体验优化之数值显示
  • 解决阿里云负载均衡网站打不开的问题-域名解析后IP无法ping通
  • 织梦dedecms直接通过数据库修改网站配置(系统基本参数)的注意事项
  • HTTP 错误 404.17 - Not Found请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。

文章分类

.NET技术 123 数据库 24 Web前端 21 网站建设运维 37 操作系统与应用 66 程序猿日常 11 开发工具 12 其他随笔 13

文章标签

ASP.NET ASP.NET MVC C# CSS HTML IIS Javascript Linux MongoDB MySql SQL SQL Server Visual Studio Windows系统 版本控制系统 插件工具 服务器 搞笑娱乐 好文分享 软件应用 生活知识 手机问题 随笔 网络知识 网站设计优化 网站维护 养生保健 异常处理 硬件设备 游戏攻略

热门文章

  • IIS8如何安装和使用URL重写工具-URL Rewrite
  • 林蛋大与楚中天,朱肚皮与朱月坡
  • 解决IE11安装升级失败和在安装前需要更新的问题
  • Windows Server 2012无法安装 .NET3.5-安装角色或功能失败,找不到源文件
  • VS重构重命名的快捷键

推荐文章

  • Windows Server 2012 R2 更改计算机管理员账号提示“出现扩展错误,未能保存本地策略数据库”
  • C#中特殊字符存入MySql报错“ERROR 1366: Incorrect string value“
  • 记录下最近onenote的无法同步问题(错误0xA0000014和0xE4010641)
  • 冠捷 AOC2070 如何关闭显示器
  • ASP.NET 验证码插件 BotDetect CAPTCHA

友情链接

  • Passingwind的博客
  • 码友网

知识共享许可协议 CC BY-SA 4.0本站作品采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。
闽ICP备15003702号
闽公网安备 35020302035102号