it-swarm.asia

خطأ WCF - لم يكن هناك نقطة استماع في

أقوم بتطوير خدمة WCF ، بتشغيل IIS6 على خادم Window 2003. لقد قمت بإنشاء عميل اختبار للتحدث إلى خدمة WCF وأظهر لي الخطأ أدناه. لقد نظرت في هذا الخطأ لعدة أيام ، وتطرقت إلى اقتراحات الناس في المنتديات ، لكن دون حظ. سيكون موضع تقدير أي مساعدة ، شكرا جزيلا

لم يكن هناك أي نقطة نهاية للاستماع إلى https://webbooking.infodata.uk.com/Synxis/Synxis.svc قد يقبل الرسالة. يحدث هذا غالبًا بسبب عنوان غير صحيح أو = SOAP الإجراء. راجع InnerException ، إذا كان موجودًا ، لمزيد من التفاصيل.

System.Net.WebException: The remote server returned an error: (404) Not Found.
  at System.Net.HttpWebRequest.GetResponse()
  at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)

Server stack trace: 
   at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, HttpWebRequest request, HttpAbortReason abortReason)
   at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
   at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
   at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
   at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(iMessage message)

Exception rethrown at [0]: 
   at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(iMessage reqMsg, iMessage retMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
   at IOta2010A.ReservationSynch_SubmitRequest(ReservationSynchRequest request)
   at Ota2010AClient.IOta2010A.ReservationSynch_SubmitRequest(ReservationSynchRequest request) in c:\Development\WorkingFolder\Webservices\SynxisNew\App_Code\OTA2010A.cs:line 57589
   at Ota2010AClient.ReservationSynch_SubmitRequest(Security Security, DateTime& TimeStamp, String CorrelationID, String RelatesToCorrelationID, ReplyTo ReplyTo, OTA_HotelResNotifRQ OTA_HotelResNotifRQ) in c:\Development\WorkingFolder\Webservices\SynxisNew\App_Code\OTA2010A.cs:line 57601
   at Update.Page_Load(Object sender, EventArgs e) in c:\Development\WorkingFolder\Webservices\SynxisNew\Update.aspx.cs:line 72

تهيئة العميل

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <compilation debug="true"/>
  </system.web>
  <system.serviceModel>
    <bindings>
        <wsHttpBinding>
            <binding name="ota2010AEndpoint" closeTimeout="00:01:00" openTimeout="00:01:00"
                receiveTimeout="00:10:00" sendTimeout="00:01:00" bypassProxyOnLocal="false"
                transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
                messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                allowCookies="false">
                <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
                    maxBytesPerRead="4096" maxNameTableCharCount="16384" />
                <reliableSession ordered="true" inactivityTimeout="00:10:00"
                    enabled="false" />
                <security mode="Transport">
                    <transport clientCredentialType="None" proxyCredentialType="None"
                        realm="" />
                    <message clientCredentialType="Windows" negotiateServiceCredential="true"
                        establishSecurityContext="true" />
                </security>
            </binding>
        </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="https://webbooking.infodata.uk.com/synxis/synxis.svc"
                binding="wsHttpBinding" bindingConfiguration="ota2010AEndpoint"
                contract="IOta2010A" name="ota2010AEndpoint" />
        </client>
    </system.serviceModel>
</configuration>

تهيئة الخدمة

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0">
      <assemblies>
        <add Assembly="Pervasive.Data.SqlClient, Version=2.10.0.34, Culture=neutral, PublicKeyToken=C84CD5C63851E072"/>
      </assemblies>
    </compilation>
    <authentication mode="Windows"/>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/> 
  </system.web>
  <system.serviceModel>
    <services>
      <service name="Synxis" behaviorConfiguration="SynxisWCF">
        <endpoint address="" name="wsHttpEndpoint"  binding="wsHttpBinding" contract="Synxis" />
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
      </service>
    </services>
    <diagnostics>
      <messageLogging logEntireMessage="true" logMalformedMessages="true"
         logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true"
         maxMessagesToLog="300" />
    </diagnostics>
    <behaviors>
      <serviceBehaviors>
        <behavior name="SynxisWCF" >
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" externalMetadataLocation="https://webbooking.infodata.uk.com/synxis/Synxis.svc.wsdl" />
            <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>
31
Neil Hung

أنت لا تحدد ربطًا في تهيئة خدمتك ، لذا فإنك تحصل على القيم الافتراضية لـ wsHttpBinding ، والقيمة الافتراضية لـ securityMode\transport لهذا الربط هو Message.

حاول نسخ تكوين الربط الخاص بك من تهيئة العميل إلى تهيئة الخدمة الخاصة بك وتعيين هذا الربط لنقطة النهاية عبر السمة bindingConfiguration:

<bindings>
  <wsHttpBinding>
    <binding name="ota2010AEndpoint" 
             .......>
      <readerQuotas maxDepth="32" ... />
        <reliableSession ordered="true" .... />
          <security mode="Transport">
            <transport clientCredentialType="None" proxyCredentialType="None"
                       realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"
                     establishSecurityContext="true" />
          </security>
    </binding>
  </wsHttpBinding>
</bindings>    

(أجزاء مقطوعة من التكوين لتوفير مساحة في الإجابة).

<service name="Synxis" behaviorConfiguration="SynxisWCF">
    <endpoint address="" name="wsHttpEndpoint" 
              binding="wsHttpBinding" 
              bindingConfiguration="ota2010AEndpoint"
              contract="Synxis" />

سيؤدي ذلك إلى تعيين الربط المحدد (مع أمان النقل) إلى نقطة النهاية.

14
Tim

كان لي نفس القضية. بالنسبة لي ، لاحظت أن https يستخدم شهادة أخرى غير صالحة من حيث تاريخ انتهاء الصلاحية. لست متأكدا لماذا حدث ذلك. لقد غيرت رقم منفذ Https وشهادة جديدة موقعة ذاتيا. يمكن WCFtestClinet الاتصال بالخادم عبر HTTPS!

2
patricgh

في حالتي

وظيفتي لديها وظيفة إلى Upload Files

وظهر هذا الخطأ عند محاولة تحميل Big Files

لذلك وجدت هذه الإجابة لزيادة maxRequestLength إلى القيمة المطلوبة في web.config

والمشكلة حلها

إذا لم تقم بأي عمليات تحميل أو تنزيل ، فربما لن تساعدك هذه الإجابة

1
Basheer AL-MOMANI

حالة مختلفة ولكن قد تساعد شخص ما ،

في حالتي تم تمكين جدار الحماية نافذة على الخادم ،

يعتقد اثنان يمكن القيام به ،

1) تعطيل جدار الحماية ويندوز (لديك على المحك لكنه سوف تحصل على عمل شيء)

2) إضافة منفذ في القاعدة الواردة.

شكر .

1
Usman Younas

يمكنك حل المشكلة عن طريق مسح قيمة العنوان في علامة نقطة النهاية في web.config:

<endpoint address="" name="wsHttpEndpoint"  .......           />
0
aseman arabsorkhi

كنت أتلقى نفس الخطأ مع وصول الخدمة. كان يعمل في المتصفح ، لكنه لم يكن يعمل عندما أحاول الوصول إليه في تطبيق asp.net/c#. لقد غيرت تجمع التطبيقات من appPoolIdentity إلى NetworkService ، وبدأ العمل. يبدو وكأنه مشكلة إذن لي.

0
Atta H.