Nejlepší způsob, jak přetrvávat dat v .NET webové služby

hlasů
4

Mám webovou službu, která dotazuje data z tohoto souboru json, ale nechci webová služba, která má přístup k souboru pokaždé. Myslím, že možná mohu ukládat data někde jinde (možná v paměti), takže webová služba může jen získat data ze tam příště se to snaží dotazu stejná data. I docela pochopit, co je třeba udělat, ale já jsem prostě není jistý, jak se vlastně udělat. Jak můžeme přetrvávat data do webové služby?

Aktualizace: Oba návrhy, ukládání do mezipaměti a pomocí statické proměnné, vypadají dobře. Možná bych měl použít oba, takže jsem se podívat na jedno první, a pokud to není tam, použijte druhou, pokud to není tam jeden, pak se podíváme na soubor JSON.

Položena 15/08/2008 v 00:13
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
6

Rozšíření na Ice ^^ Heat ‚s myšlenkou, možná budete chtít přemýšlet o tom, kde byste do mezipaměti - buď mezipaměti obsah souboru json v mezipaměti aplikací, jako je takto:

Context.Cache.Insert("foo", _
                 Foo, _
                 Nothing, _
                 DateAdd(DateInterval.Minute, 30, Now()), _
                 System.Web.Caching.Cache.NoSlidingExpiration)

A pak generovat výsledky, které potřebujete od toho při každém úderu. Případně můžete do mezipaměti výstup Webservice na definici funkce:

<WebMethod(CacheDuration:=60)> _
Public Function HelloWorld() As String
    Return "Hello World"
End Function

Informace získané z webové služby XML mezipaměti strategie .

Odpovězeno 15/08/2008 v 01:32
zdroj uživatelem

hlasů
3

Co pomocí objektu kolekce globální nebo statické? Je to dobrý nápad?

Odpovězeno 15/08/2008 v 00:39
zdroj uživatelem

hlasů
2

Echo klughing , je-li váš JSON data nejsou Očekává se často mění, myslím, že nejjednodušší způsob, jak mezipaměti je použít statické kolekci jakési - snad DataTable.

Za prvé, analyzovat data JSON do System.Data.DataTable, a učinit z něj statické ve své třídě webové služby. Poté přejděte na statický objekt. Tyto údaje by měly zůstat v mezipaměti, dokud IIS recykluje svůj fond aplikací.

public class WebServiceClass
{
    private static DataTable _myData = null;
    public static DataTable MyData
    {
        get
        {
            if (_myData == null)
            {
                _myData = ParseJsonDataReturnDT();
            }
            return _myData;
        }
    }

    [WebMethod]
    public string GetData()
    {
        //... do some stuff with MyData and return a string ...
        return MyData.Rows[0]["MyColumn"].ToString();
    }
}
Odpovězeno 15/08/2008 v 03:36
zdroj uživatelem

hlasů
2

ASP.NET mezipaměti funguje stejně dobře s webovými službami, takže můžete realizovat pravidelné ukládání do mezipaměti, jak zde bylo vysvětleno: http://msdn.microsoft.com/en-us/library/aa478965.aspx

Odpovězeno 15/08/2008 v 00:29
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more