میزبانی سرویس WCF با netTcpBinding در IIS7

چهارشنبه 13 آبان 1394

در این مقاله میزبانی سرویسهای WCF را روی IIS7 با استفاده از netTcpBinding مورد بررسی قرار می دهیم . netTcpBinding یک اتصال امن و قابل اعتماد مناسب برای ارتباط دستگاه های متقابل است. از TCP برای تحویل پیام با استفاده از پیام های کد شده باینری که سریعتر از اتصالهای بر پایه HTTP است استفاده می شود.

میزبانی سرویس WCF با netTcpBinding در IIS7

در این مقاله میزبانی سرویسهای  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 استفاده کرد.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان
  • WCF
  • 2k بازدید
  • 0 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید