2010-11-11 16 views
0

Dans IIS 7.5, j'ai configuré mon site Web asp.net pour "http,net.pipe" dans "Activer les protocoles".IIS 7.5 Configuration du site Web pour prendre en charge http, net.pipe pour appeler le service WCF

Remarque: La configuration net.pipe est effectuée pour appeler un autre module du site Web (SOA). Tout a bien fonctionné avec asp.net & net.pipe invocation de service appelant autre module

Mais quand je tente d'appeler RIA service from silverlight 4 i l'erreur suivante

The provided URI scheme 'net.pipe' is invalid; expected 'http'. 
Parameter name: context.ListenUriBaseAddress 

Comment puis-je configurer mon site pour travailler dans http & configuration net.pipe?

+0

S'IL VOUS PLAÎT VÉRIFIEZ code SL, utilisez-vous httpbinding dans SL? pourriez-vous nous montrer votre code de génération de proxy de SL, afin que nous puissions trouver la solution de votre problème d'une meilleure manière. –

+0

SL utilise une liaison binaire personnalisée. Si je désactive net.pipe dans IIS, le service RIA silverlight fonctionne correctement. Mais avec http & net.pipe activé, cela ne fonctionne pas. – kayak

+0

Mon problème est le même que celui-ci http://social.msdn.microsoft.com/Forums/sv-SE/wcf/thread/cdff7a49-ebe3-4732-aaa4-50dd32670caf – kayak

Répondre

1

J'ai eu le même problème avec la nouvelle API REST wcf. Nous avons dû filtrer net.pipe, dans l'usine d'accueil de service personnalisé, voici le code

public class FilteredServiceHostFactory : HttpServiceHostFactory 
{ 
    private static readonly List<string> _allowedSchemes; 
    static FilteredServiceHostFactory() 
    { 
     _allowedSchemes = new List<string> {Uri.UriSchemeHttp, Uri.UriSchemeHttps}; 
    } 
    protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses) 
    { 
     baseAddresses = baseAddresses.Where(uri => _allowedSchemes.Contains(uri.Scheme)).ToArray(); 
     return base.CreateServiceHost(serviceType, baseAddresses); 
    } 
}