NETCore之后,我们发现代码工程中多了两个类Program类和Startup类!接下来我们详细探秘一下通用主机Host的启动过程。一,程序类的Main函数入口程序类重要的功能就是启动主机,这里有一个主机的概念,是ASP!NETCore新发布的.主机,负责应用程序启动和生存期管理。同时,主机也是封装应用程序资源的对象:依赖注入(DI)记录中配置IHostedService实现启动主机时,它在DI容器中找到IHostedService的每个实现,然后调用IHostedService.
EventArgse){string[]strings=Directory!GetDirectories("C:");for(inti=0;istrings!Length;i++){Response!Write(strings[i]+"BR/");}}/script在没有作任何设置之前,我们运行这段程序,可以很容易的获得正常的结果!如图:这是我们不愿意看到的。我们只希望ASPNET对自己目录进行操作,而不能干涉其它任意目录.
天津进口ASP主机培训
Split(new[]{;},StringSplitOptions!RemoveEmptyEntries);//Fallbackto"*"todisable!options!AllowedHosts=(hosts?!Length0?hosts:new[]{"*"});}});HostFilteringOptionsAllowedHosts允许访问的Host主机AllowEmptyHosts是否允许请求头Host的值为空访问默认为trueIncludeFailureMessage返回错误信息,默认为true在Configure方法中添加HostFiltering中间件publicvoidConfigure(Microsoft!
配置[“AllowedHosts”]?!拆分(新[]{;},StringSplitOptions.RemoveEmptyEntries);//退回到“*”以禁用.选项.AllowedHosts=(主机?。长度0?主机:new[]{“*”}));}});//更改通知服务。AddSingletonIOptionsChangeTokenSourceHostFilteringOptions(新的ConfigurationChangeTokenSourceHostFilteringOptions(HostingContext!
配置));服务。AddTransientIStartupFilter,HostFilteringStartupFilter();如果(字符串!的Equals(“真”,hostingContext!配置[“ForwardedHeaders_Enabled”],StringComparison。OrdinalIgnoreCase)){服务!配置ForwardedHeadersOptions(选项={选项。
ForwardedHeaders=ForwardedHeaders!XForwardedFor|ForwardedHeaders.XForwardedProto;//默认情况下仅允许使用环回代理.清除该限制,因为转发器已通过显式配置启用!选项。已知网络!清除();选项!已知代理.清除();});服务。AddTransientIStartupFilter,ForwardedHeadersStartupFilter();}服务!
刷快排_专业定制电脑、软件-天津三品科技有限公司
AddRouting();})!UseIIS()。UseIISIntegration();}从上述代码中,可以看到CreateDefaultBuilder内部构造了一个HostBuilder,同时设置了在ASP!NetCore2!X调用的CreateWebHostBuilder和3!X的主要区别在于WebHost的调用,CreateDefaultBuilder被Host替换,另一个区别是对ConfigureWebHostDefaults()的调用;由于新的主机生成器是通用主机生成器,因此我们也需要知道默认Web主机配置默认配置了什么!
value)"> <option value='1'>11111</option> <option value='2'>22222</option> <option value='3'>33333</option> <option value='4'>55555</option> </select> <input type="text" name="text1"> <input type="text" name="text2"> </form> <script language="JavaScript"> function selectChk(v) { if (v=="1") { form1。
text1。value="3" form1。text2。value="4" } if (v=="2") { form1。text1。value="5" form1。
text2。value="6" } 。。。 } </script>。