Как создать единый сервис asmx
Как я могу создать единый ASMX веб-сервис? (пожалуйста, не говорите, используйте WCF и WWF:D)
5 ответов
Краткий ответ: Вы не хотите.
Длинный ответ: В запросе к.ASMX будет недетерминированно использоваться новый рабочий поток, поэтому, даже если вы использовали шаблон синглтона, срок его жизни не будет известен.
Возможно, уточните, что вы хотите сделать, и я могу направить вас к лучшему образцу.
Я не уверен, как синглтон решает вашу проблему с производительностью, если вы не кэшируете данные внутри экземпляра. В этом случае я бы согласился с приведенным выше предложением о введении кеша между службой и базой данных. Насколько изменчивы эти данные?
Я не буду предлагать WCF, но только потому, что вы просили нас не делать этого.
Я упомяну, что вы нашли еще одну причину использовать WCF поверх ASMX. Возможно, вы захотите сохранить список.
Вы также можете сохранить список причин для использования ASMX поверх WCF. Возможно, вы даже захотите использовать тот же список по причинам, по которым не нужно обновляться до.NET 3.5 SP1. Это не будет длинный список.
Может наступить время, когда руководство задается вопросом, почему некоторые вещи так долго выполняются, когда вы захотите отправить им свой список.
Вы можете использовать ясень (HttpHandler). Реализуйте IHttpHandler и установите для IsReusable значение false.
http://neilkilbride.blogspot.com/2008/01/ihttphandler-isreusable-property.html
В зависимости от того, что вы хотите сделать, возможно, вы можете написать движок в виде синглтона, к которому обращается любой поток, обслуживающий вызов ASMX.