Итак, у меня есть веб-сервер IIS10, на котором запущено довольно много приложений, таких как:
+ Default Web Site
-First Application
-Second Application
-Third Application
Мы используем nLog для записи данных в базу данных, одним из которых является текущий домен приложения
${appdomain:format=Format}
как задокументировано на https://github.com/NLog/NLog/wiki/AppDomain-Layout-Renderer.
Это замечательно, за исключением того, что когда я смотрю наши консолидированные журналы, я вижу, что домен приложения зарегистрирован как:
0002: / LM / W3SVC / 2 / ROOT-1-132036049222959352
Я хочу перевести это в «Третье приложение» (поэтому, когда я создаю отчет, он будет отображаться как «Третье приложение»"вместо 0002: / LM / W3SVC / 2 / ROOT-1-132036049222959352.)
Условия:
- Я не могу изменить компоновщик вывода.
- Я не могу изменить код приложений.
- Я должен сделать это ПОСЛЕ записи данных.Я предполагаю, что / LM / W3SVC / 2 / ROOT - это то, что мне нужно преобразовать, и я не могу сделать это в приложении, только в отчетах.
Я пробовал Microsoft.Web.Администрация, что-то вроде:
using (ServerManager sm = new ServerManager()){
var thisVal = (from s in sm.Sites
from app in s.Applications
from vDir in app.VirtualDirectories
where vDir.Path.Equals(currVal,StringComparison.InvariantCultureIgnoreCase)
select new KeyValuePair<string, string>(currVal, vDir.Path));
}
Но я нигде не могу найти корень приложения там.Я полагаю, что это то же самое, что и https://docs.microsoft.com/en-us/previous-versions/iis/6.0-sdk/ms524308(v=vs.90),, но это метабаза IIS, которая, по-видимому, старая и сломанная.
(приведенный выше код будет работать на той же машине, что и приложения, поэтому мне не нужно беспокоиться о поиске правильного сервера, просто переведя имя)