ably ably برای هدایت شدن به سایت جدید اینجا کلیک کنید

آموزش برنامه نویسی

آموزش برنامه نویسی وب، اندروید، ویندوز , اسکیوال و...
Tell: 0912 097 5516
| Email: Hello@EduOnline.ir

Binding and Behavior

 بسم الله االرحمن الرحیم

آموزش WCF

Binding

 یک تعریف ساده برای Binding توصیف می کند چطور کلاینت با سرویس ارتباط بر قرار خواهد کرد. این مطلب را می توانیم با یک مثال متوجه شویم. این سناریو را در نظر بگیرید، می خواهیم سرویسی را بسازیم که دو نوع مختلف از کلاینت می بایست به آن متصل شوند. یکی از کلاینت ها می بایست به صورت SOAP و با استفاده از http و کلاینت دیگر به صورت Binary و از طریق TCP متصل خواهد شد. این کار چطور می تواند صورت پذیرد؟ با وب سرویس که خیلی سخت خواهد بود، اما در WCF فقط کافی است یک Endpoint ویژه به فایل پیکربندی اضافه کنیم.



<system.serviceModel>
    <services>
      <service name="MathService"
        behaviorConfiguration="MathServiceBehavior">
      <endpoint address="http://localhost:8090/MyService/MathService.svc"
        contract="IMathService"
          binding="wsHttpBinding"/>
<endpoint address="net.tcp://localhost:8080/MyService/MathService.svc"
contract="IMathService"
          binding="netTcpBinding"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MathServiceBehavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

 

مشاهده می کنید که چقدر این کار در WCF ساده است. مایکروسافت همه چیز را ساده کرده است. رفتارهای یا behaviorهای  مشترک بر روی همه ی EndPoint ها سراسری تاثیر می گذارد.

service behaviors فقط بر روی سرویس های مرتبط تاثیر می گذارد. endpoint behaviors فقط بر روی پراپرتی های EndPoint های مرتبط تاثیر می گذارد. رفتارهای operation سطحی فقط بر روی operation خاص تاثیر می گذارد.

 

Example

در پیکربندی زیر، من رفتار را در سطح سرویس ذکر کرده ام.در  service behaviour من گره servieMetadata را با خصویت httGetEnabled='true' ذکر کردم. این خصوصیت انتشار سرویس metadata را مشخص خواهد کرد. به طور مشابه ما می توانیم خصوصیت های بیشتری را به سرویس اضافه کنیم:



system.serviceModel>
    <services>
      <service name="MathService"
        behaviorConfiguration="MathServiceBehavior">
        <endpoint address="" contract="IMathService"
          binding="wsHttpBinding"/>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="MathServiceBehavior">
          <serviceMetadata httpGetEnabled="True"/>
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

نظرات (۱)

سلام

خیلی عالیه .. ممنون
پاسخ:
خواهش می کنم، لطف دارید
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی
up
ما را در گوگل محبوب کنید