2009-10-27 5 views
0

Y a-t-il un moyen de servir une page personnalisée "Désolé non trouvé" à partir d'une demande d'accès direct à un service WCF (fichier .svc) un serveur exécutant IIS 6.0 et .NET 3.5 SP1.Comment pouvez-vous cacher le fait que votre serveur a un service WCF situé sur MyService.svc

J'ai une exigence que mon service dans un environnement de production ne soit pas détectable. L'exigence stipule que la publication WSDL doit être désactivée, et la requête indique également que lorsque vous accédez directement au fichier MyService.svc via une demande d'obtention HTTP, une page "Sorry Not found" s'affiche à la place.

Je n'ai aucun problème à désactiver les métadonnées dans le fichier de configuration.

<serviceMetadata httpGetEnabled="false" />

Mais je ne peux pas trouver un moyen de ne pas afficher la page .svc par défaut.

SERVICE
Il s'agit d'un service Windows © Communication Foundation.

La publication de métadonnées pour ce service est actuellement désactivée.

Si vous avez accès au service, vous pouvez activer la publication des métadonnées en complétant les étapes suivantes pour modifier votre fichier de configuration Web ou une application: ...

** également disponibles à l'ServerFault.

+0

Avez-vous essayé d'éteindre le httpGetEnabled? Ne fait-il pas exactement ce dont vous avez besoin? –

+0

Réponse affichée à la panne du serveur (appartient à serverfault?). P.S. Je ne vais pas vous blâmer ... serverfault est l'endroit où les questions vont mourir. –

+0

Pour clarifier le httpGetEnabled est défini sur False pour ServiceMetadata qui est la définition WSDL. Mais vous aurez toujours la page générique "Ceci est un service" qui est retournée. – degnome

Répondre

1

dans web.config:

<httpHandlers> 
    <remove verb="*" path="*.svc" /> 
    <add path="*.svc" verb="POST" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" validate="false"/> 
</httpHandlers> 
+0

Je pensais que c'était une excellente idée. Trie mais n'a pas fonctionné. – degnome

1

Essayez le réglage http [s] HelpPageEnabled false dans Web.config. Exemple:

<system.serviceModel> 
     <behaviors> 
     <serviceBehaviors> 
      <behavior> 
       <serviceMetadata httpGetEnabled="false" /> 
       <serviceDebug httpHelpPageEnabled="false"/> 
      </behavior> 
     </serviceBehaviors> 
     </behaviors> 
    </system.serviceModel> 
+0

En outre, si vous utilisez SSL, définissez les attributs 'httpsGetEnabled' et' httsHelpPageEnabled', respectivement. –

Questions connexes