none
חיבור לשרת wcf ממחשב אחר ב- vb.net

    שאלה

  • שלום,

    אני בונה שרת wcf, בניתי שרת וקליינט,

    והגדרתי לשרת כתובת קבועה שעליה הוא ירןץ וכן הגדרתי לקליינט את הכתובת של השרת.

    כאשר אני מריצה את השרת ואת הקליינט באותו מחשב זה עובד

    אך כאשר אני מריצה את הקליינט על מחשב אחר (והשרת אכן רץ) הוא לא מצליח להתחבר ואני מקבלת הודעת שגיאה כזו:

    wcf https there was no endpoint listening at "http://10.100.101.18:8732/service" that could accept the message this often caused by an incorrect address or SOAP action wcf

    למרות שפתחתי את הפורט :8732 בשני המחשבים.

    אני מצרפת את ה- App.config

    service App.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    
      <appSettings>
        <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
      </appSettings>
      <system.web>
        <compilation debug="true" />
      </system.web>
      <!-- When deploying the service library project, the content of the config file must be added to the host's 
      app.config file. System.Configuration does not support config files for libraries. -->
      <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="NewBinding0" />
          </basicHttpBinding>
        </bindings>
        <services>
          <service name="wcf4.Service1">
            <endpoint address="" binding="basicHttpBinding" contract="wcf4.IService1">
              <identity>
                <dns value="localhost" />
              </identity>
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            <host>
              <baseAddresses>
                <add baseAddress="http://10.100.101.18:8732/service" />
              </baseAddresses>
              <timeouts closeTimeout="00:10:10" />
            </host>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- To avoid disclosing metadata information, 
              set the values below to false before deployment -->
              <serviceMetadata httpGetEnabled="True" httpsGetEnabled="True"/>
              <!-- To receive exception details in faults for debugging purposes, 
              set the value below to true.  Set to false before deployment 
              to avoid disclosing exception information -->
              <serviceDebug includeExceptionDetailInFaults="False" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>
    
    </configuration>
    

    client App.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
        </startup>
        <system.serviceModel>
            <bindings>
                <basicHttpBinding>
                    <binding name="BasicHttpBinding_IService1" />
                </basicHttpBinding>
            </bindings>
            <client>
                <endpoint address="http://10.100.101.18:8732/service" binding="basicHttpBinding"
                    bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceReference1.IService1"
                    name="BasicHttpBinding_IService1" />
            </client>
        </system.serviceModel>
    </configuration>
    אודה לעזרתכם.


    יום שלישי 16 אוקטובר 2018 07:12

כל התגובות

  • ברוכה הבאה לפורום :-)

    1. אני ממליץ להחליף את הכינוי בשם מלא כאשר עובדים בפורומים מקקצועיים או לפחות להוסיףחתימהעם שם ומעט פרטים על עצמך בפורפיל שלך.

    אנונימיות מתאימה בעקר לפורומי זימה והכרויות ולא לדיונים מקצועיים בהם את צריכה לךהיות גאה שאת לוקחת חלק :-)

    2. נחזור לבעיה המדוברת.

    הבעיה של "there was no endpoint listening at that address" קשורה בדרך כלל לכך שבקשה הגיעה לשרת אבל אין האזנה ל endpoint דרכו היא הגיעה או שיש קונפליקט לגבי מי מאזין ל endpoint זה.

    אם תבדקי את הלוגים המלאים של הלקוח אז תגלי ככל הניראה שיש לך פשוט שגיאה של 404 מכיוון שהלקוח לא מוצא את השרת שמחזיר לו תשובה.

    המקרה שלך בו הדברים רצים טוב מקומית אבל לא בפניה מלקוח מרוחק, הבעיה מצתמצת מעל אבל עדיין יש הרבה אפשרויות

    1. כדי לנטר את מה שקורה בצד של השרת בצורה יותר טובה שלב ראשון זה לנטר את השרת. את יכולה להוסיף את הקוד הבא בתוך החלק של ה <configuration>

       <system.diagnostics>
          <sources>
                <source name="System.ServiceModel" switchValue="All" propagateActivity="true">
                <listeners>
                   <add name="traceListener" 
                        type="System.Diagnostics.XmlWriterTraceListener" 
                        initializeData= "c:\log\MyTraces.svclog" 
                   />
                </listeners>
             </source>
          </sources>
       </system.diagnostics>

    התוצאות שתקבלי יעזרו לנו למצוא פתרון מתאים כניראה

    2. ישנה אפשרות פשוטה שהכמות של התעבורה שאת מנסה להעביר מהשרת ללקוח גדולה מדי (למשל תמונות). במקרה כזה אפשר לשנות את ברירת המחדל של message request length על ידי הוספת ההגדרות הבאות לקובת הקונפיגורציה בתוך החלק של ה <system.web>

     <system.webServer>
       <security>
          <requestFiltering>
             <requestLimits maxAllowedContentLength="32000000" />
          </requestFiltering>
       </security>
     </system.webServer>

    3. בסעיב יכולה להיודת קשורה לקונפלידט עם שירות נוסף שמאזין לאותו endpoint

    4. הבעיה בדרך כלל קשורה לחוסר התאמה בין הגדרות הלקוח והשרת

    5. (מה שכניראה קורה אצלך בניחוש ראשוני) הבעיה יכולה להיות קשוןרה לכך שלא הגדרת את ה binding בצוןרה מפורשת אצלך בשירות בחלק הבא:

        <bindings>
          <basicHttpBinding>
            <binding name="NewBinding0" />
          </basicHttpBinding>
        </bindings>

    נסי לבצע את ההגדרות המלאות בהתאם ללקוח

    אני מצרףכמה קישורים לשאלות ז\דומות שאמרים לסכם את כל הבעיהות הנפוצות. אני ממליץלהתחיל מהקישור הראשון שכולל את הנושא האחרון שהזכרתי ולהמשיך לאפשרויות נוספות. בינתיים כאשר תספקי לנו את המידע מהניטור של השרת אז נוכל לכוון גם יותר טוב כניראה (אם עדיין תשובה זו והקישוריםלא נתנו את הפתרון)

    https://stackoverflow.com/questions/17572500/wcf-error-there-was-no-endpoint-listening-at

    https://www.codeproject.com/Questions/166246/Error-There-was-no-endpoint-listening-at

    https://social.msdn.microsoft.com/Forums/vstudio/en-US/bec3ab7a-310e-415f-b538-6d5681e5e53c/there-was-no-endpoint-listening-at?forum=wcf

    https://forums.asp.net/t/2061630.aspx?No+endpoint+listening+at+svc+that+could+accept+the+message+


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

    יום רביעי 17 אוקטובר 2018 05:56
    מנחה דיון