Jestli jsem správně pochopil scénář, jde vám o vytvoření objektové cache, která bude sdílená mezi serverovou aplikací "server.exe" (dále budu označovat jako aplikační service) a webovou aplikací běžící na IIS (web). Toto udělat lze určitě několika způsoby, ale nemusí to být úplně jednoduché. Jedna možnost je stručně následující: -Objektová cache bude hostována v procesu běžícího aplikačního service. -Na vlastní funkčnost to sice vliv nemá, ale aplikační servis by měl být ideálně aplikace typu NT Service (služba spouštěná přes Service Manager), a ne jen exe, které se musí spustit - pokud s tím nemáte zkušenosti, hledejte třídu ServiceBase: http://msdn.microsoft.com/en-us/library/... -V tomto procesu aplikačního service musíte vytvořit nějaké komunikační rozhraní, přes které se bude web (client) ptát na data. Můžete použít buď WCF nebo ASP.NET Web API (oboje lze self-hostovat uvnitř vlastní aplikace mimo IIS), případně nějakou jinou technologii pro cross-process komunikaci. -Všechny požadavky (externí z webu, i interní pro vlastní potřebu aplikačního service) by používali sdílenou in-process in-memory objektovou cache, do databáze by šli jen pokud data v cache nejsou nebo jsou stará atd. -POZOR ale na to, že aby tato cache byla efektivní musí být napsaná jako threadsafe a musí umět obsluhovat libovolné požadavky paralelně (ideálně s minimálním blokováním).
|