Domanda

Ho appena creato un servizio / client WCF e funziona perfettamente quando si esegue sullo stesso computer. Ma non riesco a capire come configurarlo per l'esecuzione su macchine diverse. Sai come?

Al momento l'URI è impostato su http: // localHost: 8000 ......

Ma penso di volere qualcosa come net.tcp: // MyServer: 8000… ..

Qualsiasi idea sarebbe fantastica. Grazie.

È stato utile?

Soluzione

Da quello che sembra, hai sia il servizio che il client nello stesso eseguibile. Mentre ciò può essere fatto, quando li desideri su macchine separate devi avere un eseguibile / host per il servizio (self-hosted o in IIS) e un eseguibile per il client. Ciascuno dovrà essere configurato correttamente con l'indirizzo, l'associazione e il contratto nella sezione di configurazione appropriata. Quindi sul server avresti qualcosa del genere:

<configuration>
    <system.serviceModel>
        <services>
            <service name="YourService">
                <endpoint address="http://MyServer:8000/..."
                          binding="BasicHttpBinding"
                          contract="Your.IContract" />
            </service>
        </services>
    </system.serviceModel>
</configuration>

E sul client avresti questo:

<configuration>
    <system.serviceModel>
        <client>
            <endpoint address="http://MyServer:8000/..."
                      binding="BasicHttpBinding"
                      contract="Your.IContract"
                      name="ClientEndpoint" />
        </client>
    </system.serviceModel>
</configuration>

La cosa principale è assicurarsi che il client e il server possano comunicare tra loro tramite la porta e il protocollo specificati (soprattutto assicurandosi che un firewall non blocchi le comunicazioni). L'altra cosa da tenere presente è che la modifica del protocollo di associazione può influire su altri aspetti del servizio (la sicurezza è importante, ma anche ciò che si può e non si può fare con il servizio).

Altri suggerimenti

Non ci sono abbastanza informazioni qui per rispondere alla tua domanda.

Supponendo che non si stiano impostando l'indirizzo / associazione / informazioni sul contratto nel ServiceHost e i proxy tramite codice, è necessario pubblicare la sezione del file di configurazione.

Se lo stai facendo nel codice, devi mostrare quale codice stai usando.

Da quello che posso dire, sembra che tu possa avere una discrepanza con l'associazione di trasporto. Il servizio e il client devono essere sullo stesso trasporto (http, tcp, named pipe, ecc. Ecc.).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top