2010-10-20 4 views
1

J'ai un service wcf "auto-hébergé" opérationnel et lors de la communication sur les machines, je reçois The remote server returned an unexpected response: (405) Method not allowed. message.wcftestclient échoue, mais seulement sur la machine distante

Cela semble seulement se produire lors de l'exécution du client de test WCF se connectant à une machine distante. Lors de l'exécution sur le serveur, tout communique bien. Je pense que cela a quelque chose à voir avec la sécurité, mais je ne suis pas sûr de savoir où chercher. Est-ce que quelqu'un peut signaler ce que je manque ou mal faire?

ci-dessous est mon fichier de configuration du serveur

<system.serviceModel> 
     <protocolMapping> 
      <remove scheme="http" /> 
      <add scheme="http" binding="customBinding" bindingConfiguration="gzipCompression" /> 
     </protocolMapping> 
     <bindings> 
      <customBinding> 
       <binding name="gzipCompression"> 
        <gzipMessageEncoding /> 
        <httpTransport maxReceivedMessageSize="2147483647" /> 
       </binding> 
      </customBinding> 
     </bindings> 
     <extensions> 
      <bindingElementExtensions> 
       <add name="gzipMessageEncoding" type="Compression.GZIP.GZipMessageEncodingElement, Compression, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" /> 
      </bindingElementExtensions> 
     </extensions> 
     <behaviors> 
      <!--<serviceBehaviors> 
       <behavior name="CadServiceBehavior"> 
        <serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" 
         httpGetBinding="" /> 
        <serviceDebug includeExceptionDetailInFaults="true" /> 
       </behavior> 
      </serviceBehaviors>--> 
     </behaviors> 
     <services> 
      <service behaviorConfiguration="CadServiceBehavior" name="CadServiceLibrary.CadServiceContract"> 
       <endpoint address="com" binding="customBinding" bindingConfiguration="gzipCompression" 
        name="com" contract="CadServiceLibrary.CadServiceContract" /> 
       <endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" 
        name="mex" contract="IMetadataExchange" /> 
       <endpoint binding="wsHttpBinding" bindingConfiguration="" name="ws" 
        contract="CadServiceLibrary.CadServiceContract" /> 
       <host> 
        <baseAddresses> 
         <add baseAddress="http://localhost/CadServices" /> 
         <add baseAddress="https://localhost:450/CadServices" /> 
        </baseAddresses> 
       </host> 
      </service> 
     </services> 
    </system.serviceModel> 

Répondre

0

Je l'ai vu avant mais pas sûr que ce soit votre problème:

au lieu de localhost, mettre le nom ou l'adresse IP de votre serveur. Si l'adresse IP, assurez-vous que la même adresse IP est sélectionnée dans IIS (je suppose que vous hébergez cela dans IIS).

Lorsque localhost est utilisé, j'ai eu de la difficulté à y accéder à partir de machines distantes - bien que l'écoute sur localhost fonctionne bien avec TCP.

+0

Cela a aidé! Maintenant, je comprends, 'Caller n'a pas été authentifié par le service. – Beta033

Questions connexes