【转 帖】.Net中如何操作IIS

DotNetCore 部署到IIS 上 应用池配置为无托管代码(网上解释:ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。因为,IIS是作为一个反向代理的角色,并不需要它来托管代码。后提供其他配置,请调用。 阅读详情
Net中实际上已经为我们在这方面做得很好了。FCL中提供了不少的类来帮助我们完成这项工作,让我们的开发工作变非常简单和快乐。编程控制IIS实际上很简单,和ASP一样,.Net中需要使用ADSI来操作IIS,但是此时我们不再需要GetObject这个东东了,因为.Net为我们提供了更加强大功能的新东东。

System.DirectoryServices命名空间中包括了些强大的东东--DirectoryEntry,DirectoryEntries,它们为我们提供了访问活动目录的强大功能,在这些类允许我们操作IIS、LDAP、NDS以及WinNT,功能很强大的吧:)

不过我们此处只谈IIS的控制,一般来说,我们操作IIS一般都是对虚拟目录的操作,因此我将此列为主要的内容来讲。

首先我们要搞清楚IIS的层次结构的问题,下面是我从国外找来的一张图,很好的解释了IIS的层次结构:

[htmChina:Image id=Image1|12][/htmChina:Image]

为了搞清楚IIS的控制语法,我们就必须搞清上图,了解IIS元数据(Metabase)的层次结构。图中的每一个节点称之Key,而每个Key可以包含一个或多个值,这些值就是我们说的属性(properties),IIS元数据中的Key与IIS中的元素是相符的,因此元数据中的属性值的设定是会影响IIS中的设置。这就是我们编程的基本思路和核心。

另外还要了解一下Schema这个概念。它表示IIS中构架的名称,即可以理解IIS元数据中Key的类型,具体点说就是指每个结点的类型。我们知道,IIS中有虚拟目录,普通目录,以及文件这些东东,而这些都属于IIS的元素,区分的他们的标帜就是Schema。比如虚拟目录的Schema就是"IIsVirtualDir",普通目录就是"IIsWebDir"。这样我们添加、删除目录时,IIS就知道我们添加的是虚拟目录还是普通目录。

创建虚拟目录

DirectoryEntry是.Net给我们的一大礼物,他的名字我们就知道他的功能--目录入口。使用过ADSI的人都知道操作IIS,WinNT这些时,我们还需要提供他们的Path,操作IIS时,这个Path的格式为:

    IIS://ComputerName/Service/Website/Directory

  • ComputerName:即操作的服务器的名字,可以是名字也可以是IP,经常用的就是localhost
  • Service:即操作的服务器,IIS中有Web,也有FTP,还有SMTP这些服务,我们主要是操作IIS的Web功能,因此此处就是"W3SVC",如果是FTP则应是"MSFTPSVC"
  • WebSite:一个IIS服务中可以包括很多的站点,这个就用于设置操作的站点。他的值是一个数字,默认是1,表示缺省站点,如果有其它,则从1开始依次类推。
  • Directory:不用说,即操作的目录名称,一个站点一般顶层目录为"ROOT",其它目录则是他的孩子(Child)。

首先我们获取一个站点的顶层目录(根目录):

    DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT");

如果我们创建这个对象是没有发生异常,则表示这个目录是真实存在的。

下面我们来添加新的虚拟目录,比如我们要加的是"Aspcn":

    DirectoryEntry newVirDir = rootfolder.Children.Add("Aspcn","IIsWebVirtualDir");
    newVirDir.Invoke("AppCreate",true);
    newVirDir.CommitChanges();
    rootfolder.CommitChanges();

 

创建目录的思路很简单,即在根目录的子集(rootfolder.Children)中再添加一条记录,这里使用的是DirectoryEntries类中的Add方法,它返回的是一个DirectoryEntry,表示新加入的目录,第一个参数是虚拟目录的名字,第二个则是Schema的类名以表明我们加入的目录类型。然后再使用DirectoryEntry的Invoke方法,调用ADSI中的"AppCreate"方法将目录真正创建(似乎不走这一步也可以创建目录成功,但是为了保险起见,大家还是用吧),最后便是依次调用新、根目录的CommitChanges方法,确认此次操作。

在创建新目录时,我们也可以同时给这个目录的属性赋值,但是我的实战经验告诉我,最好不要这样做,如果创建时就赋值,将有很多属性不能赋值成功,比如重要的表示真实目录的Path属性。因此飞刀建议大家最好是先创建目录,然后再赋值,即更新目录信息。

更新虚拟目录

相信大家对IIS都比较熟悉,了解IIS中一些重要的设置,如可读(AccessRead)、可写(AccessWrite)、可执行(AccessExecute)等。这些都可通过对DirectoryEntry的Properties属性集合的赋值来实现。赋值可以通过两种方式来完成:

第一种是调用Properties集合的Add方法,如:

    dir.Properties["AccessRead"].Add(true);

第二种是对第一个索引值赋值:

    dir.Properties["AccessRead"][0] = true;

这两种方法都是可行的。具体是要看你的喜好了。

在进行赋值之前我们还是要确定要要赋值的目标吧:)这里我们使用DirectoryEntries类的Find方法,如:

    DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");

找到了,我们就可以赋值了。赋值时一定要好好看看啊,虚拟目录的属性值可以超多,一查一大堆。。:(太多了,飞刀我也不重复了,大家去微软的站点上查:)

比较常用的有:AccessRead,AccessWrite,AccessExecute,AccessScript,DefaultDoc,EnableDefaultDoc,Path

删除虚拟目录

删除虚拟目录的方法也很简单,就是找到你要删除的虚拟目录,然后调用AppDelete方法。

    DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");
    de.Invoke("AppDelete",true);
    rootfolder.CommitChanges();

 

还有一种方法,就是调用Root目录的Delete方法。

object[] paras = new object[2];
paras[0] = "IIsWebVirtualDir"; //表示操作的是虚拟目录
paras[1] = "Aspcn";
rootfolder.Invoke("Delete",paras);
rootfolder.CommitChanges();

喜欢哪一种就看编程习惯了:))

.Net中如何操作IIS(源代码)

using System;
     using System.Data;
     using System.DirectoryServices;
     using System.Collections;
     namespace Aspcn.Management
     {
     /// <summary>
     /// IISManager 的摘要说明。
     /// </summary>
     public class IISManager
     {
     //定义需要使用的
     private string _server,_website;
     private VirtualDirectories _virdirs;
     protected System.DirectoryServices.DirectoryEntry rootfolder;
     private bool _batchflag;
     public IISManager()
     {
     //默认情况下使用localhost,即访问本地机
     _server = "localhost";
     _website = "1";
     _batchflag = false;
     }
     public IISManager(string strServer)
     {
     _server = strServer;
     _website = "1";
     _batchflag = false;
     }
     /// <summary>
     /// 定义公共属性
     /// </summary>
     
     //Server属性定义访问机器的名字,可以是IP与计算名
     public string Server
     {
     get{ return _server;}
     set{ _server = value;}
     }
     //WebSite属性定义,为一数字,为方便,使用string
     //一般来说第一台主机为1,第二台主机为2,依次类推
     public string WebSite
     {
     get{ return _website; }
     set{ _website = value; }
     }
     
     //虚拟目录的名字
     public VirtualDirectories VirDirs
     {
     get{ return _virdirs; }
     set{ _virdirs = value;}
     }
     ///<summary>
     ///定义公共方法
     ///</summary>
     
     //连接服务器
     public void Connect()
     {
     ConnectToServer();
     }
     //为方便重载
     public void Connect(string strServer)
     {
     _server = strServer;
     ConnectToServer();
     }
     //为方便重载
     public void Connect(string strServer,string strWebSite)
     {
     _server = strServer;
     _website = strWebSite;
     ConnectToServer();
     }
     //判断是否存这个虚拟目录
     public bool Exists(string strVirdir)
     {
     return _virdirs.Contains(strVirdir);
     }
     //添加一个虚拟目录
     public void Create(VirtualDirectory newdir)
     {
     string strPath = "IIS://" + _server + "/W3SVC/" + _website + "/ROOT/" + newdir.Name;
     if(!_virdirs.Contains(newdir.Name) || _batchflag )
     {
     try
     {
     //加入到ROOT的Children集合中去
     DirectoryEntry newVirDir = rootfolder.Children.Add(newdir.Name,"IIsWebVirtualDir";
     newVirDir.Invoke("AppCreate",true);
     newVirDir.CommitChanges();
     rootfolder.CommitChanges();
     //然后更新数据
     UpdateDirInfo(newVirDir,newdir);
     }
     catch(Exception ee)
     {
     throw new Exception(ee.ToString());
     }
     }
     else
     {
     throw new Exception("This virtual directory is already exist.";
     }
     }
     //得到一个虚拟目录
     public VirtualDirectory GetVirDir(string strVirdir)
     {
     VirtualDirectory tmp = null;
     if(_virdirs.Contains(strVirdir))
     {
     tmp = _virdirs.Find(strVirdir);
     ((VirtualDirectory)_virdirs[strVirdir]).flag = 2;
     }
     else
     {
     throw new Exception("This virtual directory is not exists";
     }
     return tmp;
     }
     
     //更新一个虚拟目录
     public void Update(VirtualDirectory dir)
     {
     //判断需要更改的虚拟目录是否存在
     if(_virdirs.Contains(dir.Name))
     {
     DirectoryEntry ode = rootfolder.Children.Find(dir.Name,"IIsWebVirtualDir";
     UpdateDirInfo(ode,dir);
     }
     else
     {
     throw new Exception("This virtual directory is not exists.";
     }
     }
      
     //删除一个虚拟目录
     public void Delete(string strVirdir)
     {
     if(_virdirs.Contains(strVirdir))
     {
     object[] paras = new object[2];
     paras[0] = "IIsWebVirtualDir"; //表示操作的是虚拟目录
     paras[1] = strVirdir;
     rootfolder.Invoke("Delete",paras);
     rootfolder.CommitChanges();
     }
     else
     {
     throw new Exception("Can't delete " + strVirdir + ",because it isn't exists.";
     }
     }
     //批量更新
     public void UpdateBatch()
     {
     BatchUpdate(_virdirs);
     }
     //重载一个:-)
     public void UpdateBatch(VirtualDirectories vds)
     {
     BatchUpdate(vds);
     }
      
     ///<summary>
     ///私有方法
     ///</summary>
     
     //连接服务器
     private void ConnectToServer()
     {
     string strPath = "IIS://" + _server + "/W3SVC/" + _website +"/ROOT";
     try
     {
     this.rootfolder = new DirectoryEntry(strPath);
     _virdirs = GetVirDirs(this.rootfolder.Children);
     }
     catch(Exception e)
     {
     throw new Exception("Can't connect to the server ["+ _server +"] ...",e);
     }
     }
     //执行批量更新
     private void BatchUpdate(VirtualDirectories vds)
     {
     _batchflag = true;
     foreach(object item in vds.Values)
     {
     VirtualDirectory vd = (VirtualDirectory)item;
     switch(vd.flag)
     {
     case 0:
     break;
     case 1:
     Create(vd);
     break;
     case 2:
     Update(vd);
     break;
     }
     }
     _batchflag = false;
     }
     //更新东东
     private void UpdateDirInfo(DirectoryEntry de,VirtualDirectory vd)
     {
     de.Properties["AnonymousUserName"][0] = vd.AnonymousUserName;
     de.Properties["AnonymousUserPass"][0] = vd.AnonymousUserPass;
     de.Properties["AccessRead"][0] = vd.AccessRead;
     de.Properties["AccessExecute"][0] = vd.AccessExecute;
     de.Properties["AccessWrite"][0] = vd.AccessWrite;
     de.Properties["AuthBasic"][0] = vd.AuthBasic;
     de.Properties["AuthNTLM"][0] = vd.AuthNTLM;
     de.Properties["ContentIndexed"][0] = vd.ContentIndexed;
     de.Properties["EnableDefaultDoc"][0] = vd.EnableDefaultDoc;
     de.Properties["EnableDirBrowsing"][0] = vd.EnableDirBrowsing;
     de.Properties["AccessSSL"][0] = vd.AccessSSL;
     de.Properties["AccessScript"][0] = vd.AccessScript;
     de.Properties["DefaultDoc"][0] = vd.DefaultDoc;
     de.Properties["Path"][0] = vd.Path;
     de.CommitChanges();
     }
     
     //获取虚拟目录集合
     private VirtualDirectories GetVirDirs(DirectoryEntries des)
     {
     VirtualDirectories tmpdirs = new VirtualDirectories();
     foreach(DirectoryEntry de in des)
     {
     if(de.SchemaClassName == "IIsWebVirtualDir"
     {
     VirtualDirectory vd = new VirtualDirectory();
     vd.Name = de.Name;
     vd.AccessRead = (bool)de.Properties["AccessRead"][0];
     vd.AccessExecute = (bool)de.Properties["AccessExecute"][0];
     vd.AccessWrite = (bool)de.Properties["AccessWrite"][0];
     vd.AnonymousUserName = (string)de.Properties["AnonymousUserName"][0];
     vd.AnonymousUserPass = (string)de.Properties["AnonymousUserName"][0];
     vd.AuthBasic = (bool)de.Properties["AuthBasic"][0];
     vd.AuthNTLM = (bool)de.Properties["AuthNTLM"][0];
     vd.ContentIndexed = (bool)de.Properties["ContentIndexed"][0];
     vd.EnableDefaultDoc = (bool)de.Properties["EnableDefaultDoc"][0];
     vd.EnableDirBrowsing = (bool)de.Properties["EnableDirBrowsing"][0];
     vd.AccessSSL = (bool)de.Properties["AccessSSL"][0];
     vd.AccessScript = (bool)de.Properties["AccessScript"][0];
     vd.Path = (string)de.Properties["Path"][0];
     vd.flag = 0;
     vd.DefaultDoc = (string)de.Properties["DefaultDoc"][0];
     tmpdirs.Add(vd.Name,vd);
     }
     }
     return tmpdirs;
     }
     
     }
     /// <summary>
     /// VirtualDirectory类
     /// </summary>
     public class VirtualDirectory
     {
     private bool _read,_execute,_script,_ssl,_write,_authbasic,_authntlm,_indexed,_endirbrow,_endefaultdoc;
     private string _ausername,_auserpass,_name,_path;
     private int _flag;
     private string _defaultdoc;
     /// <summary>
     /// 构造函数
     /// </summary>
     public VirtualDirectory()
     {
     SetValue();
     }
     public VirtualDirectory(string strVirDirName)
     {
     _name = strVirDirName;
     SetValue();
     }
     private void SetValue()
     {
     _read = true;_execute = false;_script = false;_ssl= false;_write=false;_authbasic=false;_authntlm=false;
     _indexed = false;_endirbrow=false;_endefaultdoc = false;
     _flag = 1;
     _defaultdoc = "default.htm,default.aspx,default.asp,index.htm";
     _path = "C://";
     _ausername = "";_auserpass ="";_name="";
     }
     ///<summary>
     ///定义属性,IISVirtualDir太多属性了
     ///我只搞了比较重要的一些,其它的大伙需要的自个加吧。
     ///</summary>
     
     public int flag
     {
     get{ return _flag;}
     set{ _flag = value;}
     }
     public bool AccessRead
     {
     get{ return _read;}
     set{ _read = value;}
     }
     public bool AccessWrite
     {
     get{ return _write;}
     set{ _write = value;}
     }
     public bool AccessExecute
     {
     get{ return _execute;}
     set{ _execute = value;}
     }
     public bool AccessSSL
     {
     get{ return _ssl;}
     set{ _ssl = value;}
     }
     public bool AccessScript
     {
     get{ return _script;}
     set{ _script = value;}
     }
     public bool AuthBasic
     {
     get{ return _authbasic;}
     set{ _authbasic = value;}
     }
     public bool AuthNTLM
     {
     get{ return _authntlm;}
     set{ _authntlm = value;}
     }
     public bool ContentIndexed
     {
     get{ return _indexed;}
     set{ _indexed = value;}
     }
     public bool EnableDirBrowsing
     {
     get{ return _endirbrow;}
     set{ _endirbrow = value;}
     }
     public bool EnableDefaultDoc
     {
     get{ return _endefaultdoc;}
     set{ _endefaultdoc = value;}
     }
     public string Name
     {
     get{ return _name;}
     set{ _name = value;}
     }
     public string Path
     {
     get{ return _path;}
     set{ _path = value;}
     }
     public string DefaultDoc
     {
     get{ return _defaultdoc;}
     set{ _defaultdoc = value;}
     }
     public string AnonymousUserName
     {
     get{ return _ausername;}
     set{ _ausername = value;}
     }
     public string AnonymousUserPass
     {
     get{ return _auserpass;}
     set{ _auserpass = value;}
     }
     }
     /// <summary>
     /// 集合VirtualDirectories
     /// </summary>
     
     public class VirtualDirectories : System.Collections.Hashtable
     {
     public VirtualDirectories()
     {
     }
     //添加新的方法
     public VirtualDirectory Find(string strName)
     {
     return (VirtualDirectory)this[strName];
     }
     }
     }
aspnetcore.dll 无法启动 IIS Express Web 服务器的解决文件,详情看我的博客 立即下载

相关推荐

训练集、验证集、测试集!YOLO系列标签数量统计!

【代码】训练集、验证集、测试集!YOLO系列标签数量统计!

qq_26281057的博客 649

.Net中如何操作IIS(原理篇)

前天在csdn看到有人问如何使用C#操作IIS,很久之前就想写一写这方面的文章,这次正好毕业做完有点时间,我就有空静下心来写这一文章。在写本文前,我首先花了一天的时间写了一操作IIS的类(编译后也可以称之组件),进一步简化了操作,源代码下一篇将全部贴出来,还有一些测试程序,有兴趣的朋友可以到这里下载。 .Net中实际上已经为我们在这方面做得很好了。FCL中提供了不少的类来帮助我们完成这项工作,让...

weixin_30666943的博客 219

ESD 防护深度解析:模型、等级、系统设计与防护策略

本文系统阐述了静电放电(ESD)防护的核心技术体系。首先对比分析了HBM(人体模型)和CDM(充电设备模型)两种基础ESD模型的物理特性、测试标准及分级要求,指出相同电压下CDM的破坏性是HBM的15-20倍。其次详细解析了IEC61000-4-2系统级ESD标准,包括接触/空气放电测试方法及判定等级。重点提出了系统级防护的三层架构:空间隔离(≥10mm间距)、电气隔离(地平面分割)和TVS管选型(响应时间<1ns),并对比了MOV、SCR等防护器件特性。针对不同应用场景(消费电子、工业控制等)给出了差异化

bother3000的博客 1882

第1章 基于.Net(Core)框架Web程序的IIS部署发布

基于.NetCore框架的部署发布的配置定义主要有两个部分的操作:1、配置IIS;2、通过VisualStudio把程序发布到指定文件夹中,下面将以通过.Net6框架开发的22-08-25-065_JsonTable(nopCommerce计划任务(ScheduleTasks)的定义实现)示例程序来详细讲述该程序是怎样被发布部署到IIS中的。

zhoujian_911的专栏 2238

ELK - CentOS7 安装 elasticsearch 7.17.5

elk elasticsearch 安装

qq_19783793的博客 1461

一种基于OpenPose和DNN的跌倒检测软件系统(中文&英文)

学习并实现一种跌倒检测模型,此模型基于OpenPose实现逐帧人体姿态检测,使用DNN识别人体动作。检测方式有在线与离线两种,本文主要测试了离线模式,测试效果较好。

Tongzhou_Li的博客 2643

VS2022启动web项目报“项目不知道如何运行名为IIS Express和命令为IISExpress的配置文件”

 网上下载的ASP.NET Core开源代码,使用VS2022打开能够正常编译,但是运行时报错:项目不知道如何运行名为“IIS Express“和命令为“IISExpress“的配置文件

gc_2299的博客 5120

ThingsBoard 3.1.1版本在window本地运行之TB-Gateway服务搭建(三)

TB-gateway服务是TB不可或缺的部分,很多的协议都需要TB-gateway来做分类处理,今天我们就来做TB-Gateway服务搭建。

晚点遇见你,余生都是你! 2473

Net中如何操作IIS(转)

.Net中实际上已经为我们在这方面做得很好了。FCL中提供了不少的类来帮助我们完成这项工作,让我们的开发工作变非常简单和快乐。编程控制IIS实际上很简单,和ASP一样,.Net中需要使用ADSI来操作IIS,但是此时我们不再需要GetObject这个东东了,因为.Net为我们提供了更加强大功能的新东东。 System.DirectoryServices命名空间中包括了些强大的东东--Directo

资料收集 889

Python爬虫实战:利用Playwright与异步技术高效抓取链家十万级二手房数据

在开始编写代码之前,我们首先需要为项目选择合适的技术栈。1. 传统方案:Requests + BeautifulSoup优点: 简单、轻量、学习成本低。直接发送HTTP请求获取HTML,然后解析。缺点: 对于大量由JavaScript动态渲染的内容无能为力。现代网站(包括链家)大量使用JS来加载数据和实现交互,简单的HTTP请求无法获取到完整的页面内容。此外,容易被基于IP或请求头特征的反爬机制拦截。2. 进阶方案:Selenium优点。

2201_76125261的博客 891

Open3D 计算点云的倒角距离(Chamfer Distance)【2025最新版】

;Chamfer Distance距离可以计算生成点云数据与标签点云数据之间的平均最短点距离。Open3D可以直接用来计算点云的Chamfer Distance距离。博客长期更新,本文最近一次更新时间为:2025年2月18日。

点云侠的博客 3254

安装IIS以及配置ASP.NET流程

  今天在学习ASP.NET网站部署、打包与安装时,先按书上的流程安装了IIS,打开IIS才发现,里面没有ASP.NET,所以为IIS配置ASP,NET又搞了好一阵。没办法,小编是一只没经验的菜鸟,没大佬们那种手速。好啦,现在来分享一下,希望对遇到同样问题的博友有帮助。       (一)IIS的安装过程:   (1)在开始栏输入控制面板,打开“控制面板”,点击”程序和功能“   (...

qq_38680900的博客 2万+

STM32面试知识点总结分析

通过Boot引脚设定,寻找初始地址初始化栈指针 __initial_sp指向复位程序 Reset_Hander设置异常中断 HardFault_Handler设置系统时钟 SystemInit调用C库函数 _main。

嵌入式技术开发 2513

Net中如何操作IIS

Net中实际上已经为我们在这方面做得很好了。FCL中提供了不少的类来帮助我们完成这项工作,让我们的开发工作变非常简单和快乐。编程控制IIS实际上很简单,和ASP一样,.Net中需要使用ADSI来操作IIS,但是此时我们不再需要GetObject这个东东了,因为.Net为我们提供了更加强大功能的新东东。System.DirectoryServices命名空间中包括了些强大的东东--Directo

cqhand的专栏 823

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

在iis服务上发布asp.net网站操作步骤,以及iis注册以及简单配置

发布网站: 1、在控制面板-&gt;管理工具-&gt;(双击)Internet 信息服务(IIS)管理器,得到: 2、倘若在管理工具中没有找到Internet 信息服务(IIS)管理器,则控制面板-&gt;程序-&gt;打开或关闭Windows功能-&gt;internet信息服务(可全部打钩) 3、在cmd中进行注册: 32位的Windows: 1. 运行-&gt;cmd 2...

tingyu23131449的博客 8629

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

.net 操作IIS

using System; using System.DirectoryServices; using System.Collections; namespace WayControls.IIS {     ///     /// IISWebServer的状态     ///     public enum IISServerState     {         ///

lewwaylw的专栏 793

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

在IIS上配置asp.net

在服务器上部署ASP.NET网站时,需要.NET的运行环境.NET Framework。.NET Framework类似于Java的JDK,包含有.NET程序运行环境和命令行编译工具。如果服务器上没有安装.NET Framework,这就需要从微软网站下载,下载网址是:http://msdn2.microsoft.com/zh-cn/default.aspx 还需要注意的是,如果先安装.NE

startwithdp的专栏 3172

IIS 部署 .Net Core 网站

本文主要是介绍了如何将本地编写的.Net Core程序部署到IIS中运行

欢迎来到我的博客 4753

iis部署.net项目

我们还提供了一个简单的示例代码,帮助您开始并测试您的.NET应用程序。希望这篇文章对您有所帮助!在您的.NET项目中,您可以使用以上代码来创建一个处理程序,该处理程序返回一个简单的“Hello, World!现在,您可以通过在浏览器中输入站点的URL来测试您的.NET项目。为您的.NET项目创建一个新的应用程序池。在IIS中创建一个新的站点来托管您的.NET项目。以下是一个简单的.NET项目示例,演示如何在IIS上部署和测试一个基本的Web应用程序。将您的.NET项目与创建的站点和应用程序池关联起来。

qq_20382175的博客 1642

【转】ASP.NET内幕 - IIS处理模型

介绍 微软的Active ServerPages,即ASP,自1996年首次发布以来,为Web开发者构建Web应用提供了一个丰富、复杂的框架。过去的几年它的基础架构发展的如此迅速,成为目前大家了解的ASP.NET,已经不再象它的前身。ASP.NET是构建Web应用的框架,就是说应用程序运行在Web上,客户-服务器端模式表现为浏览器向Web服务器发送各种资源的请求。象CGI、PHP、JSP、ASP等动态服务器端资源生成技术出现以前,所有Web服务器必须接受客户端静态资源请求,将其发送给请求者。随着动态技术的发

sinolover的专栏 454

ASP.NET操作Word的IIS权限配置

  ASP.NET账号在默认情况下是没有权限操作Microsoft Office对象的,如果不进行权限的配置,代码会抛出类似以下的异常:检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。这样给Asp.NET操作Microsoft Office对象带来了一定的困难。但我们

phoenix_17th的专栏 9926

iis .net clr_已解决:如何强制IIS加载特定版本的.NET CLR

iis .net clrMicky McQuadeturned me on to some code (from MSPSS) to solve my How to FORCE IIS to load a certain version of the CLR/.NET Framework. Greg Menounos also mentioned this solution in the com...

1181

.Net Core 部署IIS

本文介绍了将.NET Core应用程序部署到IIS的完整步骤:1)发布应用程序,选择独立部署模式以包含.NET Core运行时;2)在服务器上安装.NET Core Hosting Bundle并验证AspNetCoreModuleV2模块;3)上传发布文件到服务器指定目录;4)在IIS中添加网站,配置名称、路径和端口。完成这些步骤后,应用程序即可通过IIS正常运行。文章提供了详细的图文指导,帮助开发者顺利完成部署过程。

黄同学的博客 1342

在vs.net 中配置IIS

1。.NET 安装的顺序应该是先装IIS,再装VS.NET,如果次序反了,或者IIS重装了,就需要使用aspnet_regiis.exe -i来重新安装IIS Mapping(主要用于aspx, asmx等文件的Extention的匹配)。在C:/WINDOWS/Microsoft.NET/Framework/v1.0.3705目录下,运行下面的命令:aspnet_regiis.exe -i 2。

samprasyork的专栏 1332
上一篇: 经典常用的VBB代码标签
下一篇: 安装Python
guoyan19811021
博客等级 码龄24年 5粉丝 47原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值