作为摆弄 ASP.NET 5 的一部分,我一直在探索 CoreCLR,但无法弄清楚代码如何发现它是在 IIS 上运行还是通过 OWIN 规范自托管。
我可以引入System.Diagnostics
并调查当前进程(klr
对于自主机和iisexpress
或W3wp
对于 IIS),但我想知道是否有办法仅使用 CoreCLR 来完成它。可能通过以某种方式检查请求管道并看到 IIS 是其中的一部分?
作为摆弄 ASP.NET 5 的一部分,我一直在探索 CoreCLR,但无法弄清楚代码如何发现它是在 IIS 上运行还是通过 OWIN 规范自托管。
我可以引入System.Diagnostics
并调查当前进程(klr
对于自主机和iisexpress
或W3wp
对于 IIS),但我想知道是否有办法仅使用 CoreCLR 来完成它。可能通过以某种方式检查请求管道并看到 IIS 是其中的一部分?
在 MusicStore 存储库的示例中,我看到了一条有用的行:
bool isMono = Type.GetType("Mono.Runtime") != null;
这是示例代码https://github.com/aspnet/MusicStore/blob/master/src/MusicStore/Startup.cs