2010-10-11 3 views
1

J'ai un site Web asp.net 2.0 avec le service WCF hébergé à l'intérieur fonctionnant sur le framework .NET 3.5. Le site Web est configuré avec l'authentification Windows intégrée uniquement. Le serveur Web est IIS 6 avec équilibrage de charge sur Windows 2003 Sp2 (2 serveurs). Je suis incapable d'accéder au service WCF (.svc) en utilisant l'URL complète (http://myqa2.abcdefg.com/trxn/WCFTrxnService.svc). Notez également que le serveur est configuré avec plusieurs en-têtes d'hôte. Le site est protégé par siteminder. Initialement je recevais une erreurAuthentification Windows intégrée WCF Plusieurs en-têtes d'hôte IIS 6 ne fonctionnant pas

Cette collection contient déjà une adresse avec le schéma http. Il peut y avoir au plus une adresse par schéma dans cette collection. Nom du paramètre: item

donc ajouté l'entrée de configuration suivante

<serviceHostingEnvironment> 
    <baseAddressPrefixFilters> 
    <clear/> 
    <add prefix="http://myqa2.abcdefg.com"/> 
    </baseAddressPrefixFilters> 
</serviceHostingEnvironment> 

Cette erreur est parti, mais maintenant je suis invité à entrer connexion par le navigateur. Pour le même site, je suis en mesure d'accéder à la page .aspx. L'invite de connexion apparaît uniquement pour le fichier .svc.

Voici la liaison/point final du fichier de configuration que j'utilise.

<system.serviceModel> 
<serviceHostingEnvironment> 
    <baseAddressPrefixFilters> 
    <clear/> 
    <add prefix="http://myqa2.abcdefg.com"/> 
    </baseAddressPrefixFilters> 
</serviceHostingEnvironment> 
<bindings> 
    <basicHttpBinding> 
    <binding name="IISIntegratedAuthBinding"> 
     <security mode="TransportCredentialOnly"> 
     <transport clientCredentialType="Windows"/> 
     </security> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior name="TestWCFFromSL.Web.WCFTrxnServiceBehavior"> 
     <serviceMetadata httpGetEnabled="true" httpGetUrl="http://myqa2.abcdefg.com/fmc/WCFNotesService.svc"/> 
     <serviceDebug includeExceptionDetailInFaults="false"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="TestWCFFromSL.Web.WCFTrxnService" behaviorConfiguration="TestWCFFromSL.Web.WCFTrxnServiceBehavior"> 
    <endpoint 
     address="http://myqa2.abcdefg.com/trxn/WCFTrxnService.svc" 
     binding="basicHttpBinding" 
     bindingConfiguration="IISIntegratedAuthBinding" 
     contract="TestWCFFromSL.Web.IWCFTrxnService" /> 
    </service> 
</services> 
<!--<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>--> 

Répondre

0

si un site est protégé par SiteMinder, WCF/appels SOAP ne fonctionnent pas. Mais une solution différente à ce problème est de travailler.

L'URL myqa2.abcdefg.com/trxn/WCFTrxnService.svc est protégé par SiteMinder, mais myqa2/Pos/WCFTrxnService.svc n'est pas protégé par SiteMinder, Ressemble SiteMinder ne protège que complet (FQDN des noms de domaine). J'ai donc configuré l'application pour appeler le service WCF en utilisant l'URL courte à la place du nom de domaine complet. J'ai également dû utiliser crossdomainpolicy car l'application considère myqa2.abcdefg.com et myqa2 comme deux domaines distincts.

Questions connexes