Можно ли использовать одноэлементный прокси-сервер веб-службы ASMX? - PullRequest
5 голосов
/ 03 февраля 2011

Я работаю с некоторым <gulp> устаревшим кодом , написанным в .NET 3.5 с использованием веб-служб ASMX.

Служба Windows (назовите ее FooService) статически кэширует прокси-сервер ASMX для веб-службы (назовите ее BarWS), которую она вызывает в ответ на запросы клиентов, примерно 10-30 раз в час.

Будучи <gulp> устаревшим кодом , по различным причинам невероятно трудно проверить. Я нахожусь в процессе разрушения зависимостей, чтобы сделать его тестируемым, и эта статическая ссылка заставила меня задуматься. Прошло много лет с тех пор, как я использовал ASMX, и я помню, что прокси-сервер является поточно-ориентированным, но мне было интересно, может ли он стать непригодным для использования таким же образом, как это делают одноэлементные / общие прокси-серверы WCF, когда они создают проблему и становятся неисправными.

Учитывая легкое использование этого прокси (BarWS вызывается менее 30 раз / час), я думаю, что было бы гораздо безопаснее создавать новый прокси на каждый звонок - но мне просто интересно, буду ли я делать ненужные изменения. Кто-нибудь знает?

P.S. Я знаю, что WCF лучше, но переход на WCF сейчас слишком велик в этой <gulp> устаревшей кодовой базе.

1 Ответ

4 голосов
/ 03 февраля 2011

Измерьте время, необходимое для создания прокси. Если это ложная оптимизация (я сильно подозреваю, что это так), измените ее на создание на основе экземпляров. Обычно хорошо избегать статики. Оставьте это позади фабрики, тогда, по крайней мере, у вас все еще может быть поведение синглтонного типа, если вы действительно этого хотите, но это творческое поведение тогда будет замаскировано и независимым от клиента.

...