none
NettcpBinding wcf - איך לשפר את זמן הזיהוי של אירוע faulted RRS feed

  • שאלה

  • שלום רב,

    יש לי אפליקציה אשר מדברת עם שרת WCF באופן אסינכרוני - דרך NETTCPBINDING - כל זמן מסויים היא דוגמת את השרת ומביאה נתון מסוים.

    בחרתי בחיבור NETTCPBINDING ע"מ לשמור על החיבור חי.

    כעת, נרשמתי לאירוע Faulted, ע"מ לזהות אם היה ניתוק -בין האפליקציה לשרת, ושמתי לב שתמיד, זמן הזיהוי (הזמן שבו אירוע faulted מורם) הוא בסביבות 20 שניות ואני מעוניין לשפר את זמן הזיהוי.

    חשבתי אולי דרך ההגדרות של הnetcpbinding אוכל לשפר את זמן הזיהוי -

    ההגדרות ההתחלתיות:

    <netTcpBinding>
        <binding name="NetTcpBindingConf" closeTimeout="00:00:05" openTimeout="00:00:05" sendTimeout="00:00:10" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="100" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="20" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="5048576" maxArrayLength="50000" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
          <reliableSession ordered="true" inactivityTimeout="00:04:00" enabled="true"/>
          <security mode="Transport">
            <transport clientCredentialType="None" protectionLevel="EncryptAndSign"/>
            <message clientCredentialType="Windows"/>
          </security>
        </binding>
      </netTcpBinding>

    שיניתי ל:

     <netTcpBinding>
        <binding name="NetTcpBindingConf" closeTimeout="00:00:05" openTimeout="00:00:05" sendTimeout="00:00:05" transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="100" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxConnections="20" maxReceivedMessageSize="2147483647">
          <readerQuotas maxDepth="32" maxStringContentLength="5048576" maxArrayLength="50000" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
          <reliableSession ordered="true" inactivityTimeout="00:00:05" enabled="true"/>
          <security mode="Transport">
            <transport clientCredentialType="None" protectionLevel="EncryptAndSign"/>
            <message clientCredentialType="Windows"/>
          </security>
        </binding>
      </netTcpBinding>

    אולם זמן הזיהוי נותר בסביבות 20 שניות, האם יש למישהו עיצה או רעיון לשיפור הזמן?

    תודה.

    יום שני 08 פברואר 2016 07:37

תשובות

  • תודה:) הגדרתי את ההגדרות הבאות:

    inactivityTimeout="00:00:05",receiveTimeout="00:00:05",sendTimeout="00:00:05" 

    בקליינט ובסרבר, וזה שיפר את זמן הזיהוי.

    • סומן כתשובה על-ידי DavidMichaeli יום חמישי 25 פברואר 2016 20:35
    יום רביעי 17 פברואר 2016 08:28

כל התגובות

  • * זה משחק חפש את ההבדלים?
    תעזור לנו קצת ותפרט מה השינוי שביצעת והרבה יותר חשוב למה ביצעת אותו. למשל מה המשעות של שינוי timeout ולמה בדיוק אתה חושב שזה יכול להשפיע?
    בקישור הבא יכול לעזור לך להבין מה המשמעות של כל פרמטר: 
    https://msdn.microsoft.com/en-us/library/ms731343%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    כדי לנטר בעיה או למטב אותה אתה צריך בדרך כלל לבצע שינוי אחד בכל פעם, ולא 30 שינויים שלא תדע מי השפיע (ואולי השפיעו הפוך) ...

    1. האם אתה מתחבר לשירוךת מקומי או שירות מרוחק (במכונה אחרת) ?
    NetTcpBinding נועד בעקרון ל cross-machine אבל אין מניעה לשימוש מקומי בעיקר בשלבי הפיתוח.

    תבדוק אם מדובר בזמן הקשור לתעבורה/התחברות (אתה יכול לנטר זמנים של אירועים שונים בלקוח ובשרת כדי להבין היכן "מבוזבז" הזמן)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום שני 08 פברואר 2016 20:47
    מנחה דיון
  • תודה:) הגדרתי את ההגדרות הבאות:

    inactivityTimeout="00:00:05",receiveTimeout="00:00:05",sendTimeout="00:00:05" 

    בקליינט ובסרבר, וזה שיפר את זמן הזיהוי.

    • סומן כתשובה על-ידי DavidMichaeli יום חמישי 25 פברואר 2016 20:35
    יום רביעי 17 פברואר 2016 08:28
  • אהלן,

    אם הבעיה נתרה אז אני מבקש לסגור את השרשור :-)

    אם עדיין יש בעית המשך, א אנא פרט :-)

    * הפרמטרים שרשמת כאן כולם קשורים לזמני timeout וזה לא אמור לעשות שינוי מהותי בזמן אלא אם יש לך מצבים של timeout ולכן זה יכול להצביע על בעיה.


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום חמישי 25 פברואר 2016 10:45
    מנחה דיון
  • הבעיה נפתרה:)
    יום חמישי 25 פברואר 2016 20:35
  • אני שמח לשמוע :-)


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום חמישי 25 פברואר 2016 20:52
    מנחה דיון