2010-11-13 11 views
0

J'ai lu plusieurs articles où les utilisateurs avaient ce même problème. Une fois compilé, le fichier .exe ne peut charger aucune ressource depuis app.config. Cela se produit même lorsque le fichier app.config est copié dans le répertoire de sortie.app.config étant ignoré?

Plus précisément, je vais avoir un problème avec un client de service Web étant incapable de déterminer la configuration du point de terminaison appropriée, même si je compile statiquement dans comme ceci:

this.ws = new MyServicePortTypeClient("MyServicePort", "http://mysite.com/customer_portal/ws.php"); 

l'exception des états jetés « système. InvalidOperationException: Impossible de trouver l'élément de noeud final par défaut qui référence le contrat 'MyWebService.MyServicePortType' dans la section de configuration du client ServiceModel, car aucun fichier de configuration n'a été trouvé pour votre application ou aucun élément de noeud final correspondant à ce contrat n'a été trouvé dans le client. élément."

Je suis à perte, donc toute aide serait appréciée.

Edit: Voici le MyService.exe.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    </configSections> 
    <system.serviceModel> 
     <bindings> 
      <basicHttpBinding> 
       <binding name="MyServiceBinding" closeTimeout="00:01:00" 
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" 
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" 
        maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536" 
        messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" 
        useDefaultWebProxy="true"> 
        <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" 
         maxBytesPerRead="4096" maxNameTableCharCount="16384" /> 
        <security mode="None"> 
         <transport clientCredentialType="None" proxyCredentialType="None" 
          realm="" /> 
         <message clientCredentialType="UserName" algorithmSuite="Default" /> 
        </security> 
       </binding> 
      </basicHttpBinding> 
     </bindings> 
     <client> 
      <endpoint address="http://mysite.com/customer_portal/ws.php" 
       binding="basicHttpBinding" bindingConfiguration="MyServiceBinding" 
       contract="MyWebService.MyServicePortType" name="MyServicePort" /> 
     </client> 
    </system.serviceModel> 
</configuration> 
+1

Si la même exception est levée que vous définissiez la configuration dans app.config ou non, il me semble que app.config n'est pas impliqué dans votre problème actuel. –

+0

Si c'est le cas, qu'est-ce que ce serait? D'autres détails qui peuvent être utiles sont qu'il s'agit d'une application de service Windows. Cela fonctionne très bien lorsque je le débogue via Visual Studio, mais après l'avoir installé avec installutil, il me donne cette erreur. – Skudd

+0

Pouvez-vous ** nous montrer ** le fichier app.config que vous utilisez? Cette erreur est probablement due à une configuration WCF malformée dans ce fichier. Juste la section '' - merci! –

Répondre

1

Eh bien, je pensais que ce avec l'aide des informations fournies par tous.

Le problème est que installutil.exe essaye d'utiliser sa propre configuration, au lieu de celle créée par le service. Dans ce cas, il essaie de charger C: \ Windows \ Microsoft.NET \ Framework \ v2.0 ... \ InstallUtil.config.

Maintenant que je l'ai compris, je peux travailler avec et le faire fonctionner correctement.

Merci, vous tous!

+1

bien, vous n'avez jamais mentionné en utilisant installutil.exe - content que vous l'ayez résolu de toute façon. :) –

1

EXE prend les paramètres de FileName.exe.config, pas de App.config

Le FileName.exe .config devrait être généré automatiquement lors de la compilation du code, et placé à côté de l'EXE lui-même.

Vérifiez le dossier où vous avez l'EXE .. voyez-vous FileName.exe.config là dedans?

(Publié comme réponse en raison de la longueur et la mise en forme)

+0

J'ai vérifié et il y a en effet un FileName.exe.config, que j'ai ajouté à la publication originale. C'est ignoré quand même. – Skudd

+0

Le service WCF a généralement une extension .svc, donc je ne suis pas sûr de ce qui se passe. Je doute que vous pouvez écrire le service WCF avec PHP. Peut-être que le client lance une erreur parce que le code PHP ne renvoie pas de réponse valide. –

+0

S'il vous plaît lire le message en commençant par "Eh bien, je l'ai compris ..." dans ce fil. Le point de terminaison PHP n'est pas le problème. – Skudd