PDA

View Full Version : سوال: دلیل کند شدن وب سرویس



powerboy2988
شنبه 08 مرداد 1390, 18:45 عصر
سلام
من یک وب سرویس دارم که توش 2 تا متد داره که یکیشون کارش ورود اطلاعات و اون یکی هم گرفتن اطلاعاته...
و اینکه چند تا کلاینت بهش وصل هستند و بهش دیتا می دن.. و تو هر دقیقه بالای 100 تا درخواست اطلاعات از چندتا کلاینت داده می شه..
اما پس از یک ساعت.. وب سرویس خیلی کند میشه و هیچ دیتایی رو نمیشه از سمت وب سرویس وارد کرد..

این وسط ما صف داریم؟ بافر داریم؟؟ چیزی پر میشه که نمیشه دیتا وارد کرد؟ چون وقتی web.config رو یک تغییر کوچیک می دم دوباره شروع به کار می کنه...

ممنون از شما

mehdi.mousavi
یک شنبه 09 مرداد 1390, 12:13 عصر
سلام.
تغییر web.config در حقیقت باعث recycle شدن app میشه، درست مثل اینکه IIS رو Restart کنید. به همین دلیل هستش که به محض تغییری در web.config سرویس مجددا کار میکنه... دلیل مشکلی که باهاش مواجهید میتونه ریشه در بسیاری از مسائل داشته باشه، از Dispose نکردن Object های Disposable در کد بگیرید، تا بوجود اومدن Deadlock در سرویس، حداکثر تعداد worker thread ها، تعداد IO Thread ها، تعداد connection ها و نحوه مدیریت اونها و ...

برای شروع، لطفا این مطلب رو مطالعه کنید (http://support.microsoft.com/kb/821268) و پارامترهای ذکر شده در اون رو در web.config خودتون tune کنید.

موفق باشید.

powerboy2988
یک شنبه 09 مرداد 1390, 15:56 عصر
خیلی ممنون مهدی جان.
من احتمال می دادم که مشکل از IO باشه .. واسه همین اومدم یک صف درست کردم که بریزه تو صف و یک thread هم گذاشتم که از صف بخونه..
حالا بازم بیشتر مطالعه می کنم..

بازم ممنون

processmodel تو machine.config باید set بشه؟

mehdi.mousavi
یک شنبه 09 مرداد 1390, 18:57 عصر
processmodel تو machine.config باید set بشه؟

سلام.
در .NET 1 و 1.1 این Element در machine.config قرار داشت، اما در نسخه های بعدی .NET بصورت پیش فرض این Element در machine.config تعریف نشده و App مقدار پیش فرضی رو برمی گردونه.
اگر در machine.config به دنبال processModel باشید، attribute ای تحت عنوان allowDefinition خواهید دید که مقدار پیش فرضش، MachineOnly هستش، بنابراین، پاسخ سوال شما مثبت هستش.
بله، باید در machine.config تعریف کرد، یا اون attribute رو تغییر داد تا بشه این المنت رو در web.config تعریف کرد.

موفق باشید.

powerboy2988
دوشنبه 10 مرداد 1390, 09:13 صبح
ممنون ...
اون attribute رو به چی باید تغییر داد؟ چون یکجا خوندم که گفته بود که بین machine.config و web.confgi رابطه وراثت وجود داره... واسه همین اگر بخوای processmodel رو تو web.config اضافه کنید تو Machine.config باید مقدار autoConfig رو true کنید که بشه تو web.config اون تغییرات لازم رو داد، من این کار رو انجام دادم... اما مشکلی حل نشد...!


من allowDefinition تو Machine.config به چه مقداری ست کنم؟

powerboy2988
پنج شنبه 14 مهر 1390, 22:56 عصر
مشکلو با بیشتر کردن worker ها حل کردم...

بازم ممنون از راهنماییتون..