Nie jestem pewien, czy jest to możliwe, ale mam nadzieję, że znajdzie się wskazówka, czy program aktualnie uruchomiony działa w IIS Express. Moim najlepszym przybliżeniem tej pory, co jest niezwykle hackish i na pewno nie/przerwę w pewnym momencie:Programowo ustalić, czy kod działa pod IIS Express
bool IsExpress =
Request.ServerVariables["SERVER_SOFTWARE"] == "Microsoft-IIS/7.5"
&& Int32.Parse(Request.ServerVariables["INSTANCE_ID"]) > 1000000000;
pewnością nie musi być lepszy sposób. Moje badanie obiektów Application, Server i Request nie ujawniło niczego, co mogłoby zapewnić lepszy wgląd. Być może po prostu muszę popatrzeć na jakiś inny obiekt?
Aktualizacja:
Jestem bardzo ciekawy, czy istnieje sposób, aby wykryć to - to jest naprawdę akademicki w tym momencie nie mam pieczenie trzeba go używać. Pierwotne pytanie stoi. Ale w duchu odpowiadania na komentarze, w szczególności jestem zainteresowany odpowiedzią na krytykę z innego pytania/odpowiedzi na tej stronie: How to search the server's MIME map. Krytyka jest taka, że opublikowana odpowiedź nie działa w IIS Express, tylko w tradycyjnych instancjach IIS. IIS Express przechowuje konfigurację MIME w pliku XML applicationhost.config i chciałbym zaktualizować tę odpowiedź, aby zapewnić sposób na zwrócenie tej informacji również dla IIS Express. Mogłabym po prostu dodać kod, który pobiera odpowiednią wartość z XML (Yay dla LINQ do XML!), Ale naprawdę chciałbym, aby było to mądrzejsze. Aby było jasne, nie potrzebuję pomocy podczas analizowania tego pliku - po prostu coś bardziej eleganckiego w próbie wykrycia, czy kod jest aktualnie wykonywany w silniku IIS Express.
Aktualizacja 2:
IIS 8.0 Express, beta released this week, a ponadto pokazuje, że podejście w moim pytaniem jest kruche i pęknie. Mimo że nie jest to narzędzie rozstrzygające o konkretnej wersji, dobrze byłoby wyjaśnić tę kwestię i spróbować upewnić się, że kod będzie działał co najmniej z obecnie znanymi wersjami.
jaki jest twój cel? dlaczego chcesz to wykryć (być może jest jakiś inny sposób na osiągnięcie twojego celu)? – Yahia
Jeśli działa w IIS Express, co chcesz obsługiwać inaczej? Może to pytanie, które należy zadać, a nie jak wykryć IIS Express. "Jak zrobić ____ zamiast _____ po uruchomieniu w debugowaniu?", Na przykład. –
Pragnienie koncentruje się wokół sprawdzania niektórych elementów konfiguracyjnych - za pomocą DirectoryEntry ("IIS:/localhost/W3SVC /") a analizowania XML w pliku applicationhost.config, który steruje usługą IIS Express. – Goyuix