添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • 可以设置request、file、response等部分的编码。
  • 如果配置的编码不对的话,有可能导致错误,如解析aspx文件时有乱码而编译或处理出错。
  • 可以在IIS中或者web.config中进行配置,两边是自动同步的。
  • 新装的站点,请求编码有可能默认会使用此时操作系统的code page(标准代码页,编码号,可在cmd中用chcp来查询,936是gb2312,437是IBM437),所以如果操作系统语言或版本不对的话,可能会编码不对,需要手动来修改(貌似不用重启)。
  • Windows认证
  • 通常在IIS上,设置Windows认证为Enabled,把其他都设置成Disabled(包括Anonymous匿名)
  • ASP.NET的web.config中可以配置
  • 貌似只改这个的话,visual studio的iis express并不能以Windows认证启动,还是需要修改website的属性页上的Anonymous Authentication和Windows Authentication设置
  • 开启Windows认证后,才能ASP.NET中从Page.Request.ServerVariables[“LOGON_USER”]中获取当前用户的登录名
  • 常用于IIS 6.0以下的版本,是默认的模式。但IIS 7.0也支持,是为了向后兼容。
  • ASP.NET是一个添加到IIS中的ISAPI,ASP.NET作为一个ISAPI扩展运行,只是IIS管道中的一项组成部分。
  • 在处理ASP.NET这种动态网站的时候,它是通过一个所谓的 ISAPI程序 ,作为 插件 的方式来工作的。针对不同的动态应用程序(例如ASP,PHP等),会需要不同的ISAPI。 每个ISAPI程序即不同的处理Request和返回Response的程序
  • 在经典模式中,IIS拥有自身的管道,这些管道可以通过创建一个ISAPI扩展进行扩充,而ISAPI扩展是以难以开发而著称的。
  • 在这种情况下,ASP.NET似乎是一种类似于马后炮的成果,仅当IIS处理ISAPI扩展时才能够发挥作用。
  • 利用文件扩展名,可以判断使用哪个ISAPI处理程序。例如,可以将扩展名为.aspx 和.ascx的文件映射到aspnet_isapi.dll;并且将扩展名为.asp的文件映射到asp.dll,这样就可以处理传统的ASP页面;此外,将扩展名为.php的文件映射到php.dll,这样就可以处理PHP页面,前提是已经安装了php.dll。
  • 集成模式(Integrated)
  • 常用于IIS 7.0以上的版本,是默认的模式
  • 利用集成模式,可以将ASP.NET作为IIS的有机组成部分。相当于ASP.NET直接是IIS的一部分,可以使用很多功能。
  • 这种全新的模式,允许我们将ASP.NET更好地与IIS集成,甚至允许我们在ASP.NET中编写一些功能(例如Module)来改变IIS的行为(扩展)。集成的好处是,不再通过ISAPI的方式,提高了速度和稳定性。至于扩展,则可以使得我们对于IIS,以及其他类型的请求有更多的控制。(例如,我们希望静态网页也具备一些特殊的行为)
  • 经典模式缺少许多集成模式才能提供的特性
  • 经典模式下,ASP.NET中才能继承IHttpHandler并实现ProcessRequest方法,如果在集成模式中使用,会报错The HttpRuntime.ProcessRequest method is not supported by IIS integrated mode.
  • 经典模式下,ASP.NET中才能使用Page.Request,否则会报错Request is not available in this context
  • 经典模式下,在对应的asp.net程序的web.config中, httpModule模块和httpHandler处理程序节点 system.web 下面,否则会报错。集成模式下,在对应的asp.net程序的web.config中,httpModule模块和httpHandler处理程序节点在 system.webServer 下面,否则会报错HTTP Error 500.22 - Internal Server Error,An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode,让你迁移到新的节点下,或者切换到Classic模式。
  • httpModule和httpHandler
  • Spring.Net和Hibernate等第三方模块,也要配置在sectionGroup和httpModules和httpHandlers中
  • IIS上也可以设置Handler Mappings和Modules
  • 通常不需要手动设置,因为ASP.NET在安装时已经自动加上了相关配置,而Spring.Net和Hibernate等第三方模块可以配置在程序的web.config中
  • 经典模式下,在对应的asp.net程序的web.config中, httpModule模块和httpHandler处理程序节点 system.web 下面,否则会报错。集成模式下,在对应的asp.net程序的web.config中,httpModule模块和httpHandler处理程序节点在 system.webServer 下面,否则会报错HTTP Error 500.22 - Internal Server Error,An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode,让你迁移到新的节点下,或者切换到Classic模式。
  • Visual Studio和IIS Express
  • 可以在website的属性窗口上设置认证方式/管道模式/应用程序/虚拟目录/端口绑定等配置
  • 可以在IIS Express的 applicationhost.config 配置文件中设置认证方式/管道模式/应用程序/虚拟目录/端口绑定等配置
  • 在很多目录下都有这个 applicationhost.config 文件,比如项目的.vs目录下,用户目录\documents\iisexpress\config\等处。
  • 设置Sites->site->applicationDefaults的applicationPool为Clr4ClassicAppPool来设置管道模式。
  • 设置Sites->site->application的path和Sites->application>virtualDirectory的path和physicalPath来设置应用程序和虚拟目录。
  • 设置Sites->site->bindings->binding的protocol和bindingInformation来设置端口绑定
  • 可以在website的弹出属性页上设置默认启动页地址/Build基于的.NET Framework版本等配置
  • 可以在启动选项上下拉切换默认用哪个浏览器启动
  • Visual Studio中默认停止运行后,IIS Express服务其实还在,右下角任务栏展开可以看到,重新编译程序后不需要重新启动网站,就可以刷新页面看修改代码的效果
  • 可以通过关掉Debugging->Options->General->Enable Edit and Continue,来关掉这个功能
  •