C# IIS如何知道如何启动.NET Web应用程序
我试图理解IIS是如何知道如何启动我的ASP.Net Web应用程序的。到目前为止,我的理解是,在创建Web应用程序时,我们创建一个Web.Config,它定义了IIS将如何启动它的进程 所以我们有一个Web配置C# IIS如何知道如何启动.NET Web应用程序,c#,asp.net,iis,C#,Asp.net,Iis,我试图理解IIS是如何知道如何启动我的ASP.Net Web应用程序的。到目前为止,我的理解是,在创建Web应用程序时,我们创建一个Web.Config,它定义了IIS将如何启动它的进程 所以我们有一个Web配置 <system.webServer> <modules runAllManagedModulesForAllRequests="true"> <add name="LogRequests" type="BDBPayroll.Apps.API.W
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="LogRequests" type="BDBPayroll.Apps.API.Web.Shared.HttpModules.LogRequestsHttpModule, BDBPayroll.Apps.API.Web.Shared" />
<add name="MiniProfiler" type="BDBPayroll.Apps.API.Web.Shared.HttpModules.MiniProfilerHttpModule, BDBPayroll.Apps.API.Web.Shared" />
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
以及全球Asax:
public class WebApiApplication : WebApiHttpApplication<WebModule>
{
protected override void Configure(HttpConfiguration config)
{
config.Filters.Add(new Filters.ContextResolverFilter());
config.Filters.Add(new ValidateModelAttribute());
config.Filters.Add(new PaginationFilter());
GlobalContext<JsonFormatterRule>.Instance.SetDefaultJsonFormatter(config);
}
//...
}
公共类webapitapplication:webapittpapplication
{
受保护的覆盖无效配置(HttpConfiguration配置)
{
config.Filters.Add(newfilters.ContextResolverFilter());
添加(新的ValidateModelAttribute());
添加(新的PaginationFilter());
GlobalContext.Instance.SetDefaultJsonFormatter(配置);
}
//...
}
由于IIS可以运行多个应用程序,例如php、.net等,IIS如何从Web配置中知道如何运行全局Asax
我的猜测是,它从web配置中查找应用程序类型,然后搜索WebApiHttpApplication,有人知道关于这个过程的更多信息吗
由于IIS可以运行多个应用程序,例如php、.net等,IIS如何从Web配置中知道如何运行全局Asax
我的猜测是,它从web配置中查找应用程序类型,然后搜索WebApiHttpApplication,有人知道关于这个过程的更多信息吗
据我所知,如果使用,请向IIS发送请求
通过http.sys处理http请求后,IIS将此请求移动到w3wp.exe以进行处理
由于IIS只能处理htm或html静态页面,IIS将使用ISAPI处理IIS无法处理的页面
ISAPI是一种扩展处理程序,用于处理不同类型的页面,如php、aspx、cshtml或其他
您可以从IIS管理器控制台处理程序映射图标中找到它
图片如下:
IIS将根据其扩展名将请求发送到右侧http hanlder。处理程序模块(例如asp.net isapi)将加载CLR和web应用程序(包括Globalax)来处理请求。IIS具有额外的asp.net集成,这在web.config中没有提到。该模块加载CLR和您的ASP.NET web应用程序,谢谢,所以您说全局asax的主要逻辑是隐藏的