it-swarm.com.de

WCF-Fehler - Es wurde kein Endpunkt überwacht

Ich entwickle einen WCF-Dienst, der IIS6 auf Windows Server 2003 ausführt. Ich habe einen Testclient erstellt, um mit dem WCF-Dienst zu kommunizieren, und ich erhalte den folgenden Fehler. Ich habe mir diesen Fehler seit Tagen angesehen und habe die Vorschläge der Menschen in Foren durchgesehen, aber ohne Erfolg. Jede Hilfe wäre dankbar, vielen Dank

Bei .__ wurde kein Endpunkt gehört. https://webbooking.infodata.uk.com/Synxis/Synxis.svc das könnte .__ akzeptieren. die Nachricht. Dies wird häufig durch eine falsche Adresse oder SOAP .__ verursacht. Aktion. Weitere Informationen finden Sie in InnerException (falls vorhanden).

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

Client-Konfiguration

<?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>

Dienstkonfiguration

<?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>
29
Neil Hung

Sie definieren keine Bindung in der Konfiguration Ihres Dienstes. Daher erhalten Sie die Standardwerte für wsHttpBinding. Der Standardwert für securityMode\transport für diese Bindung lautet Message.

Versuchen Sie, Ihre Bindungskonfiguration aus der Konfiguration des Clients in Ihre Service-Konfiguration zu kopieren, und weisen Sie dem Endpunkt diese Bindung über das Attribut bindingConfiguration zu:

<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>    

(Schnippte Teile der Konfiguration ab, um Platz in der Antwort zu sparen).

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

Dadurch wird Ihre definierte Bindung (mit Transportsicherheit) dem Endpunkt zugewiesen.

14
Tim

Ich hatte das gleiche Problem. Mir ist aufgefallen, dass das https ein anderes Zertifikat verwendet, das hinsichtlich des Ablaufdatums ungültig war. Nicht sicher, warum es passiert ist. Ich habe die Https-Portnummer und ein neues selbstsigniertes Zertifikat geändert. WCFtestClinet konnte sich über HTTPS mit dem Server verbinden!

2
patricgh

in meinem Fall 

mein Service hat eine Funktion zum Upload Files

und dieser Fehler wurde beim Hochladen von Big Files angezeigt.

so fand ich diese Antwort um maxRequestLength auf den benötigten Wert in web.config zu erhöhen 

und Problem gelöst

wenn Sie keine Upload- oder Download-Vorgänge durchführen, hilft Ihnen diese Antwort möglicherweise nicht

1

Anderer Fall, kann aber jemandem helfen, 

In meinem Fall war die Windows-Firewall auf dem Server aktiviert. 

Zwei Gedanken können gemacht werden, 

1) Deaktivieren Sie die Windows-Firewall (Ihr Risiko, aber es wird funktionieren)

2) Fügen Sie einen Port in der Eingangsregel hinzu. 

Vielen Dank .

1
Usman Younas

Sie können das Problem lösen, indem Sie den Wert der Adresse im Endpunkt-Tag in web.config löschen:

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

Ich habe den gleichen Fehler bei einem Dienstzugriff erhalten. Es funktionierte im Browser, funktionierte jedoch nicht, wenn ich versuche, in meiner Anwendung asp.net/c# darauf zuzugreifen. Ich habe den Anwendungspool von appPoolIdentity in NetworkService geändert, und der Betrieb beginnt zu arbeiten. Scheint mir eine Erlaubnisfrage zu sein.

0
Atta H.