نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: سيستم پيكربندی Asp.net 2.0 (بخش دوم )

  1. #1
    تاریخ عضویت
    Nov 2007
    محل سکونت
    Earth
    نوشته ها
    84
    سپاس ها
    0
    سپاس شده 44 در 27 پست

    پیش فرض سيستم پيكربندی Asp.net 2.0 (بخش دوم )

    در [برای مشاهده لینک ها عضو سایت شوید برای عضویت در سایت بر روی اینجا کلیک کنید] با اصول اوليه سيستم پيكربندی ASP.NET 2.0 آشنا شديم . در اين بخش به بررسی برخی از تنظميات پيكربندی خواهيم پرداخت .

    $$$Connection String
    در ASP.NET 1.x ، اطلاعات مربوط به connection string در بخش <appSetting> ذخيره می گرديد . در ASP.NET 2.0 ، تمامی اطلاعات در ارتباط با connection-string در يك بخش جديد با نام <connectionStrings> ذخيره می گردد .
    ذخيره اطلاعات connection - string در بخش <appSetting> دارای چالش های مختص به خود است :

    • <LI dir=rtl>زمانی كه اطلاعات connection string در بخش appSetting ذخيره می گردد ، برای يك كنترل مرتبط با داده نظير SqlCacheDependency و يا MembershipProvider امكان دستيابی به اطلاعات وجود ندارد .
      <LI dir=rtl>ايمن سازی Connection string با استفاده از الگوريتم های رمزنگاری چالش های خاص خود را دارد .
    • ويژگی فوق صرفا" در ارتباط با برنامه های ASP.NET نبوده و تمامی برنامه های دات نت نظير Windows Forms , Web Service و ساير موارد ديگر را نيز شامل می شود .
    با توجه به اين كه اطلاعات connection string مستقل از بخش appSetting ذخيره می گردد ، می توان آنان را با استفاده از مجموعه متد ConnectionString بازيابی نمود .
    كد زير نحوه ذخيره connection string در فايل Web.config را نشان می دهد .

    <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
    <connectionStrings>
    <add
    name="MyConnectionString1"
    connectionString="Data Source providerName="System.Data.SqlClient" />
    </connectionStrings>
    </configuration>
    نحوه بازيابی اطلاعات يك connection string در برنامه :
    Public Sub Page_Load (sender As Object, e As EventArgs)
    ...
    Dim dbConnection as New _
    SqlConnection(ConfigurationSettings.ConnectionStri ngs(
    "MyConnectionString1"))
    ...
    End Sub
    پيكربندی Session State
    state management يكی از مسائل مهم در زمان پياده سازی برنامه های وب است كه می بايست با توجه به اهميت آن به درستی با ابعاد آن آشنا گرديد . در گذشته ای نه چندان دور ( ده سال پيش ) ، با اين كه برای پياده سازی برنامه های كامپيوتری از معماری client-server استفاده می گرديد ولی عملا" در معماری فوق ما دارای يك fat client و يك fat server می باشيم كه برای ذخيره state از امكانات موجود در سمت سرويس دهنده و يا سرويس گيرنده استفاده می شود . با توجه به اين كه در معماری فوق ، يك ارتباط دائم بين سرويس گيرندگان و سرويس دهنده وجود دارد برای ذخيره و نگهداری state با مشكل خاصی مواجه نمی شويم .
    در برنامه های وب گفتگوی بين يك سرويس گيرنده و يك سرويس دهنده از طريق پروتكل HTTP انجام می شود و جملگی به خوبی می دانيم كه اين پروتكل يك پروتكل stateless است و ارتباط با يك سرويس دهنده از راه دور در زمان مورد نياز ايجاد و در ادامه و پس از سرويس دهی ، غيرفعال می شود . با اين كه HTTP 1.1 از يك روش Keep-alive استفاده می نمايد ولی سرويس دهنده نمی تواند درخواست های ايجاد شده توسط يك سرويس گيرنده را تشخيص دهد .
    برای ذخيره و نگهداری state از گزينه های متعددی استفاده می گردد كه session يك نمونه در اين زمينه است .شی Session متداولترين محلی است كه می توان اطلاعات مربوط به وضعيت برنامه و كاربران را در آن ذخيره و نگهداری نمود . برای پياده سازی session از يك Hashtable استفاده می گردد و داده بر اساس تركيب زوج كليد و مقدار ذخيره می شود .
    Session در ASP.NET 2.0 يك مفهوم جديد نيست و متاثر از ماهيت پروتكل HTTP است ( Stateless ) و قبل از ASP.NET و حتی ASP كلاسيك وجود داشته است .

    داده Session در چه مكانی ذخيره می گردد ؟
    شی Session يك روش موثر برای ذخيره و نگهداری وضعيت يك برنامه و يا كاربران آن را ارائه می نمايد. ASP.NET به همراه سه Storage Provider ارائه شده است :

    • <LI dir=rtl>In-Process Session State Store : اطلاعات session در Cache ( حافظه ) ذخيره می گردد .
      <LI dir=rtl>Out-of-Process Session State Store : اطلاعات Session در State Server Service ذخيره می گردد ( asp_net_state.exe )
    • Sql Session State Store : اطلاعات session در بانك اطلاعاتی SQL ذخيره می گردد . برای پيكربندی از aspnet_regsql.exe استفاده می گردد .
    در ASP.NET 2.0 ، يك قابليت جديد با نام custome به مجموعه فوق اضافه شده است . با استفاده از گزينه فوق ، پياده كنندگان می توانند داده session را در يك مكان دائم ذخيره نمايند . مثلا" ASP.NET 2.0 امكان ذخيره داده session را در برخی بانك های اطلاعاتی نظير Oracle,DB2 و يا Sybase ندارد . در صورتی كه بخواهيم داده session را در يكی از بانك های اطلاعاتی فوق و يا يك فايل XML ذخيره نمائيم ، می توان از يك Provider class سفارشی استفاده نمود .
    برای پيكربندی اطلاعات session از عنصر <sessiononState > در فايل web.config استفاده می گردد :

    <configuration>
    <system.web>
    <sessionState mode="Off|InProc|StateServer|SQLServer|Custom" ../>
    </system.web>
    ...
    </configuration>

    در ادامه به بررسی مختصر هر يك از گزينه های فوق خواهيم پرداخت .

  2. #2
    تاریخ عضویت
    Nov 2007
    محل سکونت
    Earth
    نوشته ها
    84
    سپاس ها
    0
    سپاس شده 44 در 27 پست

    پیش فرض پاسخ : سيستم پيكربندی Asp.net 2.0 (بخش دوم )

    In-Process Session State Store : متداولترين و در عين حال سريعترين روش پيكربندی session state در ASP.NET 2.0 می باشد ( مقدار mode برابر inproc در نظر گرفته می شود ) .در اين روش داده Session در cache داخلی HttpRuntime ذخيره شده و به صورت live قابل دستيابی است . با توجه به اين كه داده session در حافطه ذخيره می گردد ، به سرعت می توان به آن دستيابی داشت ( ضرورتی ندارد داده از يك مكان ديگر به درون حافظه انتقال يابد ). داده seesion تا زمان اعتبار session در حافظه موجود می باشد و پس از time out فضای اشغال شده آزاد می گردد .

    Out-of-Process Session State Store : داده session در يك process كه به عنوان يك سرويس ويندوز اجراء می گردد ، نگهداری می شود ( aspnet_state.exe ) .
    State Service به صورت پيش فرض اجراء نمی گردد و برای فعال كردن آن می توان از دستور net start aspnet_sate استفاده نمود . به صورت پيش فرض ، سرويس فوق از پورت 42424 استفاده می نمايد . در صورت ضرورت می توان با استفاده از كليد ريجستری زير آن را تغيير داد .
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servic es\aspnet_state\Parameters\Port
    برای استفاده از روش فوق كافی است كه مقدار Inproc به StateServer در فايل web.config تغيير داد . همچنين می بايست از خصلت StateConnectionString به منظور مشخص نمودن IP و شماره پورتی كه Session State Service بر روی آن اجراء شده است ، استفاده نمود .
    <configuration>
    <system.web>
    <sessionState mode="StateServer"
    stateConnectionString="tcpip=127.0.0.1:42424"/>
    </system.web>
    </configuration>
    Sql Session State Store : داده session در يك بانك اطلاعاتی SQL ذخيره می گردد .
    <configuration>
    <system.web>
    <sessionState
    mode="SQLServer"
    sqlConnectionString="data source= TestSessionServer;
    user id=TestWebUser;password=Test"
    cookieless="false"
    timeout="20"
    />
    </system.web>
    </configuration>.
    Custom State Store :معماری Sessin state در ASP.NET 2.0 بگونه ای طراحی شده است كه امكان افزودن Provider به آن وجود دارد ( مشتق شده از كلاس SessionStateStoreProviderBase ) . در صورتی كه بخواهيم Provider اختصاصی خود را ايجاد و يا از يك third-party provider استفاده نمائيم ، می بايست مقدار خصلت mode را Custome در نظر گرفت . در چنين مواردی ، لازم است كه custom provider assembly مشتق شده از كلاس SessionStateStoreProviderBase را مشخص نمود .
    <configuration>
    <system.web>
    <sessionState
    mode="Custom"
    CustomProvider="CustomStateProvider">
    <providers>
    <add name="CustomStateProvider"
    type="CustomStateProviderAssembly,
    CustomStateProviderNamespace.CustomStateProviderSa teProvider"/>
    </providers>
    </sesisonState>
    </system.web>
    </configuration>
    مثال : كد زير يك نمونه از پيكربندی sessionState در فايل web.config را نشان می دهد :
    <sessionState
    mode="StateServer"
    cookieless="false"
    timeout="20"
    stateConnectionString="tcpip=TestSessionStore:4242 4"
    stateNetworkTimeout="60"
    sqlConnectionString=""
    />
    توضيحات :
    • <LI dir=rtl>mode : نوع ذخيره سازی اطلاعات session را مشخص می نمايد . در اين رابطه از پنج گزينه Off, InProc, StateServer, SQLServer و Custom استفاده می گردد . كه مقدار پيش فرض InProc است .
      <LI dir=rtl> cookieless : مشخص می نمايد كه آيا از HTTP cookieless Session Key management حمايت می گردد .
      <LI dir=rtl>timeout : مدت زمان حيات Session را مشخص می نمايد . مقدار timeoute بر اساس زمان درخواست ارزيابی می گردد . مثلا" در صورتی كه مقدار timeout بيست دقيقه باشد و در خواستی در ساعت ده و ده دقيقه دريافت گردد ، timeout در ساعت ده و سی دقيقه به اتمام می رسد .
      <LI dir=rtl>stateConnnectionString :از خصلت فوق به منظور مشخص نمودن آدرس TCP/IP و پورت جهت ارتباط يا Windows Service providing state management استفاده می گردد ( در مواردی كه mode=StateServer در نظر گرفته شود ) .
      <LI dir=rtl>stateNetworkTimeout : مقدار timeout ( بر حسب ثانيه ) را در زمان ذخيره state در يك out-of-process session ( نظير StateServer ) ، مشخص می نمايد .
    • sqlConnectionString : از خصلت فوق جهت ارتباط با بانك اطلاعاتی SQL Server برای ذخيره و بازيابی داده session استفاده می گردد ( در مواردی كه mode=SQLServer در نظر گرفته شود) .
    پيكربندی Session State با استفاده از Connection string : كد زير يك نمونه از پيكربندی Session State با استفاده از connection string را نشان می دهد :
    <configuration>
    <connectionStrings>
    <add name = "TestSessionState"
    connectionString = "data source=TestSessionServer;
    user id=TestWebUser;password=test" />
    </connectionStrings>
    <system.web>
    <sessionState
    mode="SQLServer"
    sqlConnectionString="TestSessionState"
    cookieless="false"
    timeout="20"
    />
    </system.web>
    </configuration>
    در بخش سوم به بررسی ساير تنظيمات پيكربندی خواهيم پرداخت .

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. فيكس كردن سايز آواتار ها در سايدبار
    توسط MR-ALIREZA در انجمن آموزش تغییرات در قالب های ویبولتین vBulletin 4.x.x
    پاسخ ها: 15
    آخرين نوشته: 11-26-2012, 13:44
  2. مشكل خارج شدن به يكباره كاربران؟!!!
    توسط alfrd1000 در انجمن رفع مشکلات برنامه ویبولتین vBulletin 3.x.x
    پاسخ ها: 1
    آخرين نوشته: 01-08-2010, 21:07
  3. سيستم پيكربندی Asp.net 2.0 (بخش سوم )
    توسط Travis در انجمن طراحی صفحات داینامیک
    پاسخ ها: 1
    آخرين نوشته: 12-04-2007, 18:52
  4. سيستم پيكربندی Asp.net 2.0 (بخش اول)
    توسط Travis در انجمن طراحی صفحات داینامیک
    پاسخ ها: 1
    آخرين نوشته: 12-04-2007, 18:46

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •