2010-04-04 5 views
0

Nous avons actuellement un service WCF qui fonctionne sur https. Mais nous voulons le changer pour le faire fonctionner juste sur http.WCF sur les paramètres http requis

Quelqu'un pourrait-il me dire ce que j'ai besoin de changer pour que le service wcf fonctionne sur http? Voici mes valeurs de fichier de configuration. Y a-t-il autre chose que j'ai besoin de cahnge autre que le web.config ??

d'aide grandement appréciée

<system.serviceModel> 
    <serviceHostingEnvironment> 
     <baseAddressPrefixFilters> 
     <add prefix="myservername" /> 
     </baseAddressPrefixFilters> 
    </serviceHostingEnvironment> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="basicHttpBinding_Windows" 
       maxReceivedMessageSize="500000000" maxBufferPoolSize="500000000" 
       messageEncoding="Mtom"> 
       <security mode="TransportWithMessageCredential"> 
       <transport clientCredentialType="Windows" /> 
       </security> 
       <readerQuotas maxDepth="500000000" 
       maxArrayLength="500000000" maxBytesPerRead="500000000" 
       maxNameTableCharCount="500000000" maxStringContentLength="500000000"/> 
      </binding> 
     </basicHttpBinding> 
    </bindings> 
    <behaviors> 
     <endpointBehaviors> 
     <behavior name="myproject_Behavior"> 
      <dataContractSerializer /> 
      <synchronousReceive /> 
     </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
      <behavior name="WebService.WSBehavior"> 
      <serviceMetadata httpsGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true" /> 
      </behavior> 
      <behavior name="WebService.Forms_WSBehavior"> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service behaviorConfiguration="WebService.WSBehavior" 
       name="IMMSWebService.mywebservice_WS"> 
      <endpoint 
       address="myproject_WS" 
       binding="basicHttpBinding" 
       bindingConfiguration="basicHttpBinding_Windows" 
       bindingName="basicHttpBinding" 
       contract="WebService.ICommand"> 
       <identity> 
        <dns value="localhost" /> 
       </identity> 
      </endpoint> 
      <endpoint address="mex" 
        binding="mexHttpsBinding" 
        contract="IMetadataExchange" /> 
      <host> 
       <timeouts closeTimeout="00:10:00" openTimeout="00:10:00" /> 
      </host> 
     </service> 
     <service behaviorConfiguration="WebService.Forms_WSBehavior" 
       name="WebService.Forms_WS"> 
      <endpoint 
       address="" 
       binding="wsHttpBinding" 
       contract="WebService.IForms_WS"> 
       <identity> 
        <dns value="localhost" /> 
       </identity> 
      </endpoint> 
      <endpoint address="mex" 
        binding="mexHttpBinding" 
        contract="IMetadataExchange" /> 
     </service> 
    </services> 
    </system.serviceModel> 

Répondre

0

changement

<security mode="TransportWithMessageCredential"> 

Pour

<security mode="None"> 

changer aussi

<endpoint address="mex" 
       binding="mexHttpsBinding" 
       contract="IMetadataExchange" /> 

à

<endpoint address="mex" 
       binding="mexHttpBinding" 
       contract="IMetadataExchange" /> 

et enfin toute occurrence de

httpsGetEnabled à httpGetEnabled

+0

J'ai changé mon fichier de configuration pour NOne et quand j'essaye d'obtenir le service de l'IE j'obtiens cette erreur N'a pas pu trouver une adresse de base qui assortit le schéma http pour l'endpoint avec la liaison basicHttpBinding. Les schémas d'adresse de base enregistrés sont [https]. Toute aide sur ce qu'il faut faire ensuite sur ce – Crishna

+0

voir modifier ci-dessus httpsGetEnabled = "true" – Nix

+0

Cela n'a pas aidé non plus. Je reçois toujours la même erreur – Crishna

0

j'ai changé mon fichier de configuration sans pareil et lorsque je tente d'obtenir au service de l'IE-je obtenir cette erreur Impossible trouver une adresse de base qui correspond au schéma http pour le point de terminaison avec la liaison basicHttpBinding. Les schémas d'adresse de base enregistrés sont [https]. Toute aide sur ce qu'il faut faire sur ce

0

Pour votre deuxième problème avec les adresses de base: créer un élément <baseAddresses> dans votre balise de service:

<services> 
    <service behaviorConfiguration="WebService.WSBehavior" 
    name="IMMSWebService.mywebservice_WS"> 
    <endpoint 
     address="myproject_WS" 
     binding="basicHttpBinding" 
     bindingConfiguration="basicHttpBinding_Windows" 
     bindingName="basicHttpBinding" 
     contract="WebService.ICommand"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://yourserver:8181/YourServiceBase" /> 
     </baseAddresses> 
     <timeouts closeTimeout="00:10:00" openTimeout="00:10:00" /> 
    </host> 
    </service> 

ou utiliser des adresses qualifiés sur vos points d'extrémité

<services> 
    <service behaviorConfiguration="WebService.WSBehavior" 
    name="IMMSWebService.mywebservice_WS"> 
    <endpoint 
     address="http://yourserver:8181/YourServiceBase/myproject_WS" 
     binding="basicHttpBinding" 
     bindingConfiguration="basicHttpBinding_Windows" 
     bindingName="basicHttpBinding" 
     contract="WebService.ICommand"> 
     <identity> 
     <dns value="localhost" /> 
     </identity> 
    </endpoint> 
    <host> 
     <timeouts closeTimeout="00:10:00" openTimeout="00:10:00" /> 
    </host> 
    </service> 
+0

J'ai créé un élément d'adresse basé dans l'onglet de service et j'ai toujours la même erreur "Impossible de trouver une adresse de base correspondant au schéma http pour le point de terminaison avec la liaison basicHttpBinding Les schémas d'adresse de base enregistrés sont [https]." – Crishna

+0

Pouvez-vous nous montrer l'adresse de base que vous utilisez? Aussi: avez-vous changer votre point de terminaison MEX pour utiliser mexHttpBinding au lieu de mexHttpsBinding, aussi?Avez-vous changé votre comportement de serviceMetadata pour utiliser httpGetEnabled au lieu de httpsGetEnabled ?? –

Questions connexes