رادکام
در اینجا نحوه بازیابی یک Metadata را از سرویس WCF ایجاد شده خواهیم
دید، همچنین خواهیم دید که چگونه از این Metadata برای ایجاد یک
پروکسی WCF استفاده می کنیم تا با آن بتوان به سرویس دسترسی پیدا کرد.
این کار توسط قابلیت Add Service Reference تعبیه شده در VS فراهم شده است.
این ابزار Metadata ی مورد نظر را از نقطه پایانی سرویس ( MEX endpoint )
بدست آورده و کد های مورد نیاز برنامه را برای سرویس گیرنده با زبان جاری
انتخاب شده در VS تولید می کند. علاوه برا ایجاد پروکسی سرویس گیرنده ، این
ابزار فایل پیکربندی سرویس گیرنده را ایجاد و یا در صورت نیاز بروز رسانی
می کند تا برنامه سرویس گیرنده قادر شود تا در یکی از endpoint های آن به
سرویس متصل شده و از آن استفاده کند.
همچنین میتوان از ابزار
ServiceModel Metadata Utility Tool (Svcutil.exe) برای ایجاد
کلاس مربوط به پروکسی مورد نیاز سرویس گیرنده و کد های مربوط به پیکربندی ،
استفاده کرد.
برنامه سرویس گیرنده از کلاس پروکسی ایجاد شده برای اتصال به سرویس و
استفاده از امکانات آن استفاده می کند.
برای ایجاد یک سرویس گیرنده WCF میتوان مراحل زیر را انجام داد:
1) یک پروژه جدید باید به Solutionجاری اضافه کنیم ، همانطور که پیش تر از
این توضیح دادیم، داخل Solution در VS ، از منوی File، سپس زیر منوی Add ،
سپس زیر منوی New Project را کلیک کرده و از منوهای سمت جپ باکس ظاهر شده ،
زیر منوی Installed و سپس زیر منوی Visual C# و سپس Windows Classic
Desktop را انتخاب می کنیم و در سمت راست پروژه
Console App (.Net Framework )
را انتخاب می کنید. نام این پروژه را
GettingStartedClient قرار می دهیم و سپس کلید Ok را فشار می دهیم و
منتظر می مانیم تا پروژه مشخص شده به Solution اضافه شود.
2) مانند روشی که پیش از این توضیح داده ایم، نسخه دات نت فریموورک پروژه
ایجاد شده را برابر 4.5 قرار دهید.
3) Reference مورد نیاز را به نام System.ServiceModel به Reference
های پروژه ایجاد شده نیز اضافه می کنیم ( نحوه انجام این کار پیش تر توضیح
داده شده است )
4) حال باید Reference پروژه سرویس خود را نیز به این پروژه اضافه کنیم.
پروژه سرویس ما که توسط پروژه قبلی هاست شده است باید در حالت اجرایی قرار
گیرد، تا ما به این سرویس به وسیله URL دسترسی داشته باشیم. URL مربوطه که
در کد پروژه GettingStartedHost تعیین شد
http://localhost:8000/GettingStarted/
می باشد. ما باید بتوانبم سرویس خود را با URL اشاره شده به عنوان Service
Reference به پروژه خود اضافه کنیم. برای اینکار ابتدا باید پروژه
gettingStartedHost را به نحوی اجرا کنیم.
برای این کار
باید سراغ فایل اجرایی پروژه برویم که با Build کردن Solution و پروژه
GettingStartedHost ایجاد شده است. داخل پوشه GettingStarted رفته و سپس
داخل پوشه مربوط به به پروژه که همان GettingStartedHost است بروید و سپس
به داخل پوشه bin و سپس داخل پوشه Debug بروید، در این پوشه یک فایل
اجرایی exe منطبق با نام پروژه مربوطه وجود دارد که باید بوسیله Command
اجرا شود. نام این فایل همانطور که مشاهده می کنید GettingStartedHost.exe
می باشد. برای اجرای این برنامه توسط Coommand ویندوز، ابتدا باید برنامه
Command Prompt ویندوز را با دسترسی Administrator اجرا کنید (Run As
Administrator). و سپس دا دستورات Dos که خود می دانید فولدر حاوی برنامه
Exe را فولدر جاری خود کنید و پس نام فایل اجرایی را تایپ کرده و کلیدEnter
را بزنید تا سرویس ما در حالا میزبانی قرار گیرد تا در دسترس بقیه برنامه
ها قرار گیرد. ما برای این کار به روش زیر عمل کردیم، شما باید مسیری که
پروژه خود را در آن قرار دادید جایگزین مسیری را که ما در Command Prompt
وارد کرده ایم ، بکنید:
اجرای Command Prompt به روش زیر:
نحوه رسیدن و پوشه حاوی برنامه exe و اجرای آن:
بعد از هر سطر از دستورات داخل CMD یک بار کلید Enter زده شده است. همانطور
که در دو سطر آخر می بینید سرویس میزبانی شده و آماده استفاده است. حال در
Solution خود، در پروژه GettingStartedClient و سپس روی فولدر
References کلیک راست می کنیم و سپس روی Add Service Reference کلیک
می کنیم تا صفحه مربوطه برای اضافه کردن سرویس نمایان شود. در صفحه باز شده
در مقابل Address ، آدرس مربوط به سرویس را
(http://localhost:8000/GettingStarted/)وارد کرده و سپس کلید Go
مقابل آن را کلیک می کنیم:
VS سرویس در حال اجرا را پیدا کرده و سپس در ستون سمت چپ کلاس
های موجود در سرویس و متد های داخل هر کدام را نمایش خواهد داد. برای این
کار کافی است را روی CalculatorService در ستون سمت چپ و سپس روی
ICalculator کلیک کنید تا متد های پیاده سازی شده را مشاهده بفرمایید.
حال کلید Ok را فشار دهید تا سرویس میزبانی شده و در حال اجرای ما به
Reference های پروژه اضافه گردد. نام Namespace را نیاز نیست در اینجا
تغییر دهید اما در پروژه های خود حتما نام مناسب آن را وارد کنید. حال
سرویس ما به پروژه اضافه شده است. برای اینکه پروژه Build شود باید
CMD را ببندیم تا پروژه Build شود و سپس دوباره مانند قبل اجرا کنیم.
بعد از این که Reference به پروژه اضافه شد، فایل App.config هم به صورت
اتوماتیک توسط VS به پروژه اضافه می شود.پیکربندی سمت سرویس گیرنده شامل
مشخص کردن Endpoint (نقطه پایانی) است که مشتری برای دسترسی به سرویس
استفاده می کند. یک Endpoint (نقطه پایانی) یک آدرس، یک Binding (اتصال) و
یک قرارداد دارد و هر کدام از آنها باید در فرایند پیکربندی مشتری مشخص
شود. فایل App.Config را بررسی می کنیم. احتمالا محتوای فایل ایجاد شده
در پروژه شما بسیار شبیه سطور زیر خواهد بود:
منابع:
Developing Service-Oriented Applications with WCF
5,006بازدید
دیدگاه کاربران
هنوز دیدگاهی ثبت نشده است.
شما میتوانید درباره این مقاله، دیدگاه خود را ثبت کنید.