Size: a a a

2019 December 30

IC

Ilya Chernoudov in pro.net
The .NET Framework version 2.0 introduces the CompilationRelaxations.NoStringInterning enumeration member. The NoStringInterning member marks an assembly as not requiring string-literal interning. You can apply NoStringInterning to an assembly using the CompilationRelaxationsAttribute attribute. Also, when you use the Ngen.exe (Native Image Generator) to compile an assembly in advance of run time, strings are not interned across modules.
источник

M

Mikhail in pro.net
Dr. Friedrich von Never
Ок, мне тоже непонятно!
Вот такие хидеры приходят в сервис:

fields.HttpBodyAndHeaders.Headers.X-Forwarded-For      193.142.57.10
fields.HttpBodyAndHeaders.Headers.X-Original-Forwarded-For 193.142.57.10

Включена конфигурация для x-forwarded-for
services.Configure<ForwardedHeadersOptions>(options =>
{
   options.ForwardedHeaders =
       ForwardedHeaders.XForwardedFor;
   options.ForwardLimit = 10;
});

app.UseForwardedHeaders();

А ip-адрес в поле RemoteIpAddress все равно иной.
Вот лог того, какой адрес в поле:
Client IP-address: 10.129.18.200

При этом, как я уже сказал, локально он берет ип из заголовка успешно.
Хз вообще пока чо с этим делать и как отлаживать
источник

E

EgorBo in pro.net
Ilya Chernoudov
The .NET Framework version 2.0 introduces the CompilationRelaxations.NoStringInterning enumeration member. The NoStringInterning member marks an assembly as not requiring string-literal interning. You can apply NoStringInterning to an assembly using the CompilationRelaxationsAttribute attribute. Also, when you use the Ngen.exe (Native Image Generator) to compile an assembly in advance of run time, strings are not interned across modules.
@fvnever вот
источник

E

EgorBo in pro.net
акросс модулес
источник

Dv

Dr. Friedrich von Never in pro.net
Ну
источник

Dv

Dr. Friedrich von Never in pro.net
Я это и говорил.
источник

E

EgorBo in pro.net
это и так понятно — это же отдельные нативные либы
источник

NT

Nikita Tsukanov in pro.net
Mikhail
ну с тем чтобы он брал из заголовка тоже есть проблема.
я включил чтобы он брал из заголовка, локально это работает (пропускаю запрос через оцелот в свой сервис, устанавливаю хидер x-forwarded-for и он нормально передается через оцелот в сервис и ремоутип берет оттуда.

а вот в кластере такая же схема не работает. при этом по логам я вижу что именно до сервиса дошел заголовок x-forwarded-for, но в поле ремоут ип другое значение получилось.

и вот тут мне не совсем понятно. я бы разницу в поведении на кластер, но заголовок же в запросе к сервису есть
Мидлварь напиши свою
источник

E

EgorBo in pro.net
так в пределах одного модуля все литералы будут интернированы
источник

NT

Nikita Tsukanov in pro.net
Которая сама возьмет из заголовка и сама проставит
источник

Dv

Dr. Friedrich von Never in pro.net
EgorBo
это и так понятно — это же отдельные нативные либы
Мне непонятно. Если б сильно хотели, то могли бы в общий интерн кэш положить
источник

Dv

Dr. Friedrich von Never in pro.net
EgorBo
так в пределах одного модуля все литералы будут интернированы
Дак у тебя один модуль может объвить энум, а другой — его использовать
источник

Dv

Dr. Friedrich von Never in pro.net
И что будет?
источник

E

EgorBo in pro.net
ничего
источник

NT

Nikita Tsukanov in pro.net
EgorBo
их не надо пиннить они изначально интернированны будут
А интернированые типа всегда запинены?
источник

Dv

Dr. Friedrich von Never in pro.net
Именно!
источник

Dv

Dr. Friedrich von Never in pro.net
Nikita Tsukanov
А интернированые типа всегда запинены?
Тоже хороший вопрос
источник

E

EgorBo in pro.net
Nikita Tsukanov
А интернированые типа всегда запинены?
да
источник

Dv

Dr. Friedrich von Never in pro.net
Ого
источник

E

EgorBo in pro.net
они лежат в отдельном хипе
источник