میزبانی سرویس WCF با netTcpBinding در IIS7
چهارشنبه 13 آبان 1394در این مقاله میزبانی سرویسهای WCF را روی IIS7 با استفاده از netTcpBinding مورد بررسی قرار می دهیم . netTcpBinding یک اتصال امن و قابل اعتماد مناسب برای ارتباط دستگاه های متقابل است. از TCP برای تحویل پیام با استفاده از پیام های کد شده باینری که سریعتر از اتصالهای بر پایه HTTP است استفاده می شود.
در این مقاله میزبانی سرویسهای WCF را روی IIS7 با استفاده از netTcpBinding مورد بررسی قرار می دهیم .
در صورت تمایل میتوانید به صورت رایگان آموزش WCF به همراه پروژه عملی را در سایت تاپ لرن مشاهده کنید .
netTcpBinding یک اتصال امن و قابل اعتماد مناسب برای ارتباط دستگاه های متقابل است. از TCP برای تحویل پیام با استفاده از پیام های کد شده باینری که سریعتر از اتصالهای بر پایه HTTP است استفاده می شود. (برخی از انواع اتصال (Binding) در WCF در اینجا آورده شده است)
برای میزبانی سرویس WCF بر روی IIS7 در Web.Config تنظیمات را به صورت زیر انجام می دهیم :
<bindings> <netTcpBinding> <binding name="tcpbinding" portSharingEnabled="true"> <security mode="None"></security> <!--<security mode="Transport"> <transport clientCredentialType="Windows" protectionLevel="EncryptAndSign"/> <message clientCredentialType="Windows"/> </security>--> </binding> </netTcpBinding> </bindings>
اگر در زمان اضافه کردن refrence سرویس با خطای زیر مواجه شدید :
Error: Cannot obtain Metadata from net.tcp://win-2008:9002/Multibinding/Service1.svc If this is a Windows (R) Communication Foundation service to which you have access, please check that you have enabled metadata publishing at the specified address. For help enabling metadata publishing, please refer to the MSDN documentation at http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata Exchange Error URI: net.tcp://win-2008:9002/Multibinding/Service1.svc Metadata contains a reference that cannot be resolved: 'net.tcp://win-2008:9002/Multibinding/Service1.svc'. Could not connect to net.tcp://win-2008:9002/Multibinding/Service1.svc. The connection attempt lasted for a time span of 00:00:02.0374439. TCP error code 10061: No connection could be made because the target machine actively refused it. No connection could be made because the target machine actively refused it
برای حل این مشکل به صورت زیر عمل کنید :
قدم اول : از فعال بودن سرویس های زیر برای net.tcp مطمئن شوید:
Net.Tcp Listener Adapter .1
Net.Tcp Port Sharing Service .2
در غیر اینصورت هر دو را فعال و راه اندازی کنید.
قدم دوم: مسیر زیر را دنبال کنید :
IIS Manager -> Hosted Service -> Action pane -> Advance setting ->
در اینجا Enable Protocol را مشاهده میکنید ، به صورت پیش فرض HTTP است ، net.tcp را با کاما تعیین میکنیم.
قدم سوم: مطمئن شوید که برنامه شما در حالت کلاسیک اجرا می شود.
قدم چهارم: بر روی default Website راست کلیک کنید و Edit binding را انتخاب کنید. مطمئن شوید که اطلاعات پروتکل net.tcp اینجا هست.
قدم پنجم : firewall خود را چک کنید و قواعد inbound و outbound را برای پورت مورد استفاده ایجاد کنید.
نتیجه گیری : در این مقاله آموختیم که اتصال netTcpBinding چه برتری هایی دارد و چگونه می توان از آن در سرویسهای WCF استفاده کرد.
- WCF
- 2k بازدید
- 0 تشکر