EndpointNotFoundException - 404 - Hosting Service WCF sur HTTPS dans IIS via Visual Studio

Je suis le développement d'un service WCF à l'aide de transport paramètres de sécurité. Lors de l'essai de proxy client et l'appel de la méthode du service-je obtenir suivantes EndpointNotFoundException:

Il n'y a pas de point de terminaison de l'écoute à https://MyPC/AMTA.WebService/BroadcastInfoService.svc que peut accepter le message. Cela est souvent causé par une mauvaise adresse ou du SAVON d'action. Voir InnerException, le cas échéant, pour plus de détails.

Exception interne:

Le serveur distant a retourné une erreur: (404) Pas Trouvé.

Je suis l'hébergement de mon service par le biais de visual studio.

web.config pour le service:

<system.serviceModel>
  <services>
  <service name="AMTA.WebService.Broadcasts.BroadcastInfoService">
    <endpoint address="/BroadcastInfoService.svc" binding="wsHttpBinding" contract="AMTA.WebService.Interface.Broadcasts.IBroadcastInfoService"/>
    <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" />
  </service>
</services>
<bindings>
  <wsHttpBinding>
    <binding name="TransportSecurity">
      <security mode="Transport">
        <transport clientCredentialType="None"/>
      </security>
    </binding>
  </wsHttpBinding>
</bindings>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

Config pour le client:

    <system.serviceModel>
    <bindings>
        <wsHttpBinding>
          <binding name="WSHttpBinding_IBroadcastInfoService">
            <security mode="Transport">
              <transport clientCredentialType="None"/>
            </security>
          </binding>
        </wsHttpBinding>
    </bindings>
    <client>
        <endpoint address="https://MyPC/AMTA.WebService/BroadcastInfoService.svc"
            binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IBroadcastInfoService"
            contract="BroadcastInfoService.IBroadcastInfoService" name="WSHttpBinding_IBroadcastInfoService">
        </endpoint>
    </client>
</system.serviceModel>

Je suis le déploiement à l'aide de Web page de propriétés du projet pour les locaux IIS à l'aide de ce répertoire virtuel:

https://MyPC:443/AMTA.WebService/

Je peux parcourir https://MyPC:443/AMTA.WebService/BroadcastInfoService.svc après l'appui sur la touche F5, ce qui montre la page avec wsdl info. Si, quand j'essaie d'appeler des méthodes sur proxy client, endpoint pas trouvé exception est levée avec la suite du journal de détails

Système.ServiceModel.EndpointNotFoundException, Système.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Le service '/AMTA.WebService/BroadcastInfoService.svc/" n'existe pas.

StackTrace

au Système.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity)

au Système.ServiceModel.ServiceHostingEnvironment.EnsureServiceAvailableFast(String relativeVirtualPath, EventTraceActivity eventTraceActivity)

Https et Http en-têtes d'hôte sont activés pour IIS et Https est liée à certificat auto-signé.

  • 443 ouvert entre l'hôte et le client? Sont l'hôte et le client sur la même case? Essayez ceci: https: [pas d'espace] //127.0.0.1:443/AMTA.WebService/BroadcastInfoService.svc
  • Oui, tout est sur la même machine.
  • Donc, essayez Localhost ou 127.0.0.1 et voir si vous obtenez un résultat différent.
  • Ce qui se passe lorsque vous accédez à la même adresse que celle que vous avez dans votre configuration de client? Vous avez dit que vous accédez à https://MyPC:443/AMTA.WebService/BroadcastInfoService.svc dans le navigateur et il fonctionne, mais votre client config dit https://MyPC/AMTA.WebService/BroadcastInfoService.svc qui ne peut pas résoudre à la même place, selon la façon dont votre IIS/IIS Express/Visual Studio site web est configuré. Aussi, ce nom d'hôte est le cert délivré? Que peut vous poser quelques questions supplémentaires plus tard si le cert est délivré à MyPC.Domain.com ou localhost et vous êtes à la navigation à MyPc
  • J'ai régénéré le service de référence et a obtenu de résultat étrange dans la nouvelle configuration du client: adresse="...AMTA.WebService/BroadcastInfoService.svc/BroadcastInfoService.svc"
  • Cert est délivré à MyPC. J'ai essayé différentes combinaisons dans la configuration du client, mais sans succès. J'ai aussi regardé dans mon wsdl et svc fichier est doublé à l'adresse ...AMTA.WebService/BroadcastInfoService.svc/BroadcastInfoService.svc
  • Pas de chance avec Localhost ou 127.0.0.1, que ce soit avec ou sans le port
  • Pas sûr de ce que suggèrent ... des symptômes, on dirait que le client ne peut pas trouver l'hôte, c'est pourquoi j'ai proposé d'utiliser localhost ou son adresse IP équivalent.
  • Quand je regarde dans mon cert dans IIS-je obtenir - "Cette autorité de certification Racine de Certificat n'est pas approuvé" - c'est peut-être la cause?

InformationsquelleAutor Cortlendt | 2014-01-17