2009-03-27 4 views
8

Modifier: J'ai décidé de simplement convertir cette page en une page Web normale, car je n'ai besoin que de fournir un paramètre entier et de récupérer une chaîne.Configuration d'un point de terminaison de service Web et contrat à partir du code C#?

Je laisserai la question ouverte si quelqu'un a une bonne réponse.


J'ai un service Web que je veux appeler, mais parce que cela doit être appelé à partir d'un plug-in à un autre système, un fichier de configuration d'application avec toute la configuration ne fera pas, comme le système de plugin doesn pas lire ce fichier du tout, juste la DLL.

Donc, la question est, comment puis-je prendre les parties pertinentes du fichier de configuration et traduire cela en code à la place?

Les pièces que je dois probablement convertir sont:

<system.serviceModel> 
    <bindings> 
     <basicHttpBinding> 
      <binding name="TooltipServiceSoap" 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://localhost:2952/TooltipService.asmx" 
      binding="basicHttpBinding" bindingConfiguration="TooltipServiceSoap" 
      contract="TooltipService.TooltipServiceSoap" name="TooltipServiceSoap" /> 
    </client> 
</system.serviceModel> 

L'URL et cette volonté de changement de cap, mais c'est pour moi de savoir si quelqu'un peut me diriger dans la bonne direction sur la façon d'obtenir le code nécessaire dans l'application de sorte que si je supprime le fichier de configuration de l'application, il fonctionnera toujours.

+0

WCF, a autant de douleur de la configuration car il gagne ... à certains égards, les anciens WSE/services web WSDL sont beaucoup plus simples - ou même des choses comme base de contrats protobuf-net fournir RPC/canaux http. Vous pouvez faire du WCF entièrement avec du code, mais ce n'est pas toujours simple. –

+0

J'ai trouvé plusieurs pages web, mais cela ressemblait à de la magie noire, donc j'ai juste converti le code actuel en une page web à la place. J'ai juste besoin d'une chaîne de texte pure à partir d'un ID, et le "service" est juste là pour séparer certains systèmes les uns des autres pour des raisons de sécurité. –

Répondre

1

C'est sur une question similaire et pourrait aider: Making WCF easier to configure

Je voulais avoir une application avec peu ou pas de configuration client nécessaire - point juste au niveau du serveur et avoir la connexion.

+0

Merci, je vais essayer de le grok. –

2

J'ai utilisé la configuration suivante dans le fichier web.config pour télécharger une taille de fichier supérieure à 64 Ko (par défaut) via le service REST.

<system.serviceModel> 
    <services> 
     <service name="Service"> 
     <endpoint 
      address="" 
      binding="webHttpBinding" bindingConfiguration="FileTransferServicesBinding" 
      contract="IService"/> 
     </service> 
    </services> 
    <bindings> 
     <webHttpBinding > 
     <binding name="FileTransferServicesBinding" maxBufferSize="10242880" maxReceivedMessageSize="10242880"> 
      <readerQuotas maxStringContentLength="10242880" maxArrayLength="10242880" /> 
     </binding> 
     </webHttpBinding> 
    </bindings> 
    </system.serviceModel> 


<system.web> 
    <httpRuntime maxRequestLength="65536" executionTimeout="36000"/> 
</System.Web>