Ho tutte le mie connessioni configurate dal mio codice, invece di usare il mio file di configurazione. Come procedere sulla configurazione di Traccia WCF su una connessione creata dal codice. Ho provato ad aggiungere la traccia al file di configurazione, come spiegato here, ma non produce alcun registro.Traccia WCF da codice
Ho bisogno di sapere come farlo funzionare dal file di configurazione per le connessioni impostate nel codice, o come configurarlo manualmente nel codice se qualcuno ha qualche informazione. Grazie!
EDIT: Per aggiungere un po 'più di informazioni:
L'applicazione è un'applicazione C# Console, e il mio legame è dichiarato come:
private Binding getBinding()
{
NetTcpBinding tcp = new NetTcpBinding();
tcp.ReaderQuotas.MaxArrayLength = 65535;
tcp.TransferMode = TransferMode.Streamed;
tcp.ReaderQuotas.MaxArrayLength = int.MaxValue;
tcp.ReaderQuotas.MaxDepth = int.MaxValue;
tcp.ReaderQuotas.MaxStringContentLength = int.MaxValue;
tcp.ReaderQuotas.MaxBytesPerRead = int.MaxValue;
tcp.ReaderQuotas.MaxNameTableCharCount = int.MaxValue;
tcp.MaxReceivedMessageSize = int.MaxValue;
return tcp;
}
E io quindi aggiungere servizi alla mia app utilizzando un generico funzione:
private List<ServiceHost> m_Hosts = new List<ServiceHost>();
private static List<string> m_Services = new List<string>();
public void AddHost<T1, T2>(string uri)
where T1 : class
where T2 : class
{
m_Services.Add("net.tcp://<ipaddress>:<port>/" + uri);
m_Hosts.Add(new ServiceHost(typeof(T1)));
m_Hosts[m_Hosts.Count - 1].AddServiceEndpoint(typeof(T2), getBinding(), m_Services[m_Services.Count - 1]);
}
C'è ovviamente un po 'più di codice per rendere questo tutto il lavoro, ma questo dovrebbe dare tutte le parti interessate.
Ti consigliamo di fare in modo che l'initializeData = 'attributo' ha il nome di un file in una cartella posizione che è scrivibile dal tuo servizio. Altrimenti non è scritto nulla. –
Nulla di che ... Non genera eccezioni o altro, ma non crea neanche un file di registro. –
@ md5sum: puoi verificare che il file 'app.config' venga letto dall'applicazione host? Ad esempio, prova ad aggiungere ' appSettings>' nel tuo 'app.config' e prova a leggerlo con' System.Configuration.ConfigurationSettings.AppSettings ["TEST_KEY "]' dall'applicazione host. –