2013-06-20 5 views
0

J'ai créé un WCF Service Library dans VS2012 et l'ai chargé à mon IIS local.
Mon client est un périphérique Windows-Mobile 6.5 et les fichiers de configuration pour le client ont été générés à l'aide du netcfsvcutil.exe. pendant le débogage tout fonctionnait bien mais quand j'ai téléchargé le service à un IIS externe je continue à obtenir une exception There was no endpoint listening... même si le netcfsvcutil.exe a généré les fichiers de l'URL externe. c'est le fichier web.config situé sur le serveur distant:Consommez le service WCF de IIS

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding name="TestBinding" receiveTimeout="00:01:00" sendTimeout="00:01:00"> 
     <security mode="None" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<services> 
    <service name="MyService.CollectionService"> 
    <endpoint address="" binding="basicHttpBinding" contract="MyService.ICollectionService" bindingConfiguration="TestBinding"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:8733/Design_Time_Addresses/MyService/CollectionService/" /> 
     </baseAddresses> 
    </host> 
    </service> 
</services> 
<behaviors> 
    <serviceBehaviors> 
    <behavior> 
     <serviceMetadata httpGetEnabled="True" /> 
     <serviceDebug includeExceptionDetailInFaults="True" /> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 

et le point de terminaison client est généré comme ceci:

public static System.ServiceModel.EndpointAddress EndpointAddress = 
    new System.ServiceModel.EndpointAddress("http://1.2.3.4/MyService/MyService.CollectionService.svc"); 

Je n'ai pas apporté de modifications de configuration quand j'uploadé la service à l'externe IIS, j'ai simplement copié & collé les fichiers d'un répertoire virtuel à l'autre. quelque chose que le peut aider est que l'exception est levée sans aucun délai.

Répondre

1

Le chemin d'accès de base et le port ne correspondent pas à l'adresse de point de terminaison dans votre configuration client.

Adresse dans votre config: http://localhost:8733/Design_Time_Addresses/MyService/CollectionService/"

Adresse dans votre terminal:

http://1.2.3.4/MyService/MyService.CollectionService.svc 

Vous devez changer votre code de noeud final à

public static System.ServiceModel.EndpointAddress EndpointAddress = new System.ServiceModel.EndpointAddress("http://1.2.3.4:8733/Design_Time_Addresses/MyService/CollectionService"); 
Questions connexes