【发布时间】:2015-12-18 15:19:52
【问题描述】:
我正在尝试了解在 IIS 或 IIS Express 上运行的 Asp.net 5 应用程序的启动过程。到目前为止我的理解是,当请求进入 IIS 时,由于 wwwroot/web.config 文件中指定了以下代码,它会运行 httpPlatform 处理程序:
<configuration>
<system.webServer>
<handlers>
<add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/>
</handlers>
<httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/>
</system.webServer>
</configuration>
所以当 IIS 运行 httpPlatformHandler 时,我相信它会从上面的 httpPlatform 标记中获取它的配置信息。这是正确的吧? “%DNX_PATH%”从哪里来?“%DNX_ARGS%”从哪里来?这些占位符是怎么得到它们的值的?
如果我能理解这一点,那么我可能会更好地了解流程的下一步是什么。谢谢!
【问题讨论】:
-
你听说过环境变量吗? :) 他们seem to be set 在
web.cmd。 -
@CodeCaster 谢谢,乍一看似乎是这样,但请看下面我对 Maxime 的回复。在这种情况下,我认为 web.cmd 中的变量恰好命名相同,但这不是为 web.config 中使用的内容设置的地方。至少我不明白它是怎么回事,因为 web.config 是导致 web.cmd 运行的原因,它必须在 web.cmd 运行之前有一个值。
标签: c# iis asp.net-core