Я работаю с клиентом, у которого есть несколько сайтов Classic ASP, но я хотел бы использовать кеширование AppFabric на этих сайтах, чтобы облегчить нагрузку, которую они в настоящее время имеют на свою базу данных.создание оболочки .NET для API AppFabric и предоставление ее веб-сайтам ASP в качестве COM-объекта.Этот метод работал, но вскоре они начали испытывать большое использование памяти, что приводило к краху их веб-сервера.Компонент COM размещен в области приложения сайта, так что это может быть большой частью проблемы.
Один из вариантов, который я придумал, - создание службы WCF и предоставление ее сайтам ASP какСервис COM +.К сожалению, мое знакомство с COM + на данный момент ограничено.Я полагаю, что этот сервис можно использовать с веб-сайтов ASP, но размещать его на других сайтах.Это также позволило бы мне тестировать производительность службы COM + независимо от веб-сайтов.
У меня возникают проблемы с подготовкой к началу документации для создания и публикации службы COM +.В документации MSDN, которую я прочитал, похоже, пропущены важные этапы процесса.
В качестве примера службы у меня есть следующее:
namespace TestComService
{
[ServiceContract(SessionMode = SessionMode.Allowed, Namespace = "http://tempure.org/DD1F6C46-1A25-49CC-AA20-2D31A3D0C0AA", Name = "IService")]
public interface IServiceContract
{
[OperationContract]
string Get(string key);
[OperationContract]
void Set(string key, string value);
}
public class Service : IServiceContract
{
private readonly Dictionary<string, string> cache = new Dictionary<string, string>();
public string Get(string key)
{
return cache[key];
}
public void Set(string key, string value)
{
cache.Add(key, value);
}
}
}
Конфигурация следующая:
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="comNonTransactionalBinding"/>
</netNamedPipeBinding>
</bindings>
<comContracts>
<comContract contract="{DD1F6C46-1A25-49CC-AA20-2D31A3D0C0AA}" name="IService" namespace="http://tempure.org/DD1F6C46-1A25-49CC-AA20-2D31A3D0C0AA" requiresSession="true">
<exposedMethods>
<add exposedMethod="Get"/>
<add exposedMethod="Set"/>
</exposedMethods>
</comContract>
</comContracts>
<services>
<service name="{3957AA9E-4671-4EF0-859B-1E94F9B21BEE},{5D180F85-65D8-4C0C-B5D6-9D28C59E29AE}">
<endpoint address="IService" binding="netNamedPipeBinding" bindingConfiguration="comNonTransactionalBinding" contract="{DD1F6C46-1A25-49CC-AA20-2D31A3D0C0AA}"/>
<host>
<baseAddresses>
<add baseAddress="net.pipe://localhost/TestComService"/>
</baseAddresses>
</host>
</service>
</services>
</system.serviceModel>
Я все еще немного запутался в том, что касается хостинга.Может ли это быть размещено в IIS или мне нужно создать отдельную службу для размещения в ней?
Еще раз, я открыт для любых предложений или предложений, которые может предоставить кто-то с большим опытом в этом вопросе.