2016-12-28 5 views
-1

J'ai créé un service WCF et le fichier Web.Config a les paramètres ci-dessous .Impossible de trouver l'élément de point de terminaison par défaut qui référence le contrat .................. dans la section de configuration du client ServiceModel

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text" sendTimeout="10:00:00" openTimeout="10:00:00"> 
     <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> 
    </binding> 
    </basicHttpBinding> 
</bindings> 
<behaviors> 
    <serviceBehaviors> 
    <behavior> 
     <!-- To avoid disclosing metadata information, set the values below to false before deployment --> 
     <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/> 
     <!-- To receive exception details in faults for debugging purposes, set the value below to true. Set to false before deployment to avoid disclosing exception information --> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
    </behavior> 
    </serviceBehaviors> 
</behaviors> 
<services> 
    <service name="Axis.OptimizationService.RMSCalculationService"> 
    <endpoint address="" binding="basicHttpBinding" contract="Axis.RMS.Optimization.Contracts.IRMSCalculationService"></endpoint> 
    </service> 
</services> 
<protocolMapping> 
    <add binding="basicHttpsBinding" scheme="https"/> 
</protocolMapping>  
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" minFreeMemoryPercentageToActivateService="0"/> 

Dans mon projet ClassLibrary, j'ai créé référence Servcie avec le nom CatpricingService et le fichier app.config regarde comme ci-dessous.

<system.serviceModel> 
<bindings> 
    <basicHttpBinding> 
    <binding name="BasicHttpBinding_IRMSCalculationService" closeTimeout="00:30:00" 
     openTimeout="00:30:00" receiveTimeout="00:30:00" sendTimeout="01:00:00" 
     maxBufferPoolSize="0" maxReceivedMessageSize="2147483647" 
     useDefaultWebProxy="true" /> 
    </basicHttpBinding> 
</bindings> 
<client> 
    <endpoint address="http://localhost:2200/RMSCalculationService.svc" 
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IRMSCalculationService" 
    contract="CatPricingService.IRMSCalculationService" name="BasicHttpBinding_IRMSCalculationService" /> 
</client> 

Je ne sais pas ce que je fais mal ici. Je l'ai fait plusieurs fois. Je ne pouvais pas comprendre quelle est l'erreur. Pour moi tous les paramètres semblent corrects. Je reçois cette erreur. J'ai renvoyé d'autres questions sur Stackoverflow ..... je suis devenu fou avec ceci. Quelqu'un peut-il comprendre ce qui ne va pas avec mes paramètres?

Ici, mon projet ClassLibrary est en cours d'exécution avec le programme externe excel.exe. (Propriétés du projet, onglet Mise au point, sélectionné "Démarrer programme externe" et a donné valeur C: \ Program Files \ Microsoft Office \ Office14 \ excel.exe

Merci

+0

Vous mentionnez app.config, ce fichier app.config se trouve dans votre projet ClassLibrary ou dans un autre projet référençant votre ClassLibrary? –

+0

Ce fichier app.config est uniquement dans le projet ClassLirary. – Ritha

+0

ok, alors s'il vous plaît regardez ma réponse ci-dessous. –

Répondre

3

Vous devez déplacer la configuration de app.config dans votre projet ClassLibrary au app.config du projet principal (par exemple, une application WPF). il est probablement le projet qui fait référence à votre ClassLibrary.

Seulement app.config dans le projet principal sera utilisé lorsque votre programme exécute.

Mise à jour:

Dans ce cas, je pense que vous avez besoin pour créer la classe client par programme, ne dépendent pas de app.config, quelque chose comme ceci:

var binding = new BasicHttpBinding(); 
var endPointAddress = new EndpointAddress("http://localhost:2200/RMSCalculationService.svc"); 
var client = new YourGeneratedClientClass(binding, endPointAddress); 
+0

J'ai Excel.exe en tant que programme de démarrage externe. J'ai mis à jour ce point dans ma question. – Ritha

+0

@Ritha, vous voulez dire que Excel.exe va consommer votre DLL? –

+0

Oui Kim. Je l'ai résolu en copiant le fichier de configuration. – Ritha

0

Enfin résolu le problème en copiant l'application. fichier de configuration en renommant Excel.exe.config dans ce dossier C: \ Program Files \ Microsoft Office \ Office14 \. Depuis là, l'application est en cours d'exécution, elle cherche un fichier de configuration à cet emplacement.