2009-03-27 13 views
8

Modifica: Ho deciso di convertirlo in una normale pagina Web, in quanto ho solo bisogno di fornire un parametro intero e recuperare una stringa.Configurazione di un endpoint e un contratto del servizio Web dal codice C#?

Lascerò la domanda aperta se qualcuno ha una buona risposta.


Ho un servizio web che voglio chiamare, ma perché questo deve essere chiamato da un plugin per un altro sistema, un file di configurazione dell'applicazione con tutta la configurazione di non fare, come il sistema di plugin doesn leggo quel file, solo la DLL.

Quindi, la domanda è: come posso prelevare le parti pertinenti dal file di configurazione e tradurlo invece in codice?

Le parti probabilmente ho bisogno di convertire sono:

<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 e tale volontà di cambiamento di rotta, ma questo è per me di capire se qualcuno può semplicemente mi punto nella giusta direzione su come ottenere il codice necessario nell'applicazione in modo che se elimini il file di configurazione dell'applicazione, funzionerà ancora.

+0

WCF, ha tanto dolore da configurazione come guadagna ... in un certo senso, le vecchie WSE/WSDL servizi web sono molto più semplice - o anche cose come protobuf-net fornire contratto a base di RPC/canali http. Puoi fare WCF interamente tramite codice, ma non è sempre semplice. –

+0

Ho trovato diverse pagine Web, ma sembrava magia nera, quindi ho semplicemente convertito il codice corrente in una pagina web. Ho solo bisogno di una stringa di puro testo da un ID e il "servizio" è lì solo per separare alcuni sistemi l'uno dall'altro a causa di problemi di sicurezza. –

risposta

1

Questo è in un problema simile e potrebbe aiutare: Making WCF easier to configure

volevo avere un'applicazione con configurazione poco o nessun cliente ha richiesto - basta puntarlo verso il server e lo hanno connettersi.

+0

Grazie, proverò a farlo. –

2

Ho usato la seguente configurazione nel file web.config per caricare la dimensione del file più di 64 KB (impostazione predefinita) tramite il servizio 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> 
Problemi correlati