SistriForum - Il social network italiano sui rifiuti
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Ultimi argomenti attivi
» Tubi fluorescenti ADR SI/NO
Da homer Lun Mar 25, 2024 7:14 pm

» grado riempimento cisterna... e dove cavolo trovo le densità
Da lotus1 Ven Mar 22, 2024 3:54 pm

» quiz esame ADR 2023
Da massimilianom Ven Mar 22, 2024 11:45 am

» MUD 2024 quando si farà?
Da fabiodafirenze Mer Mar 13, 2024 5:52 pm

» abbandono rifiuti all'interno di manufatti
Da marcos79 Dom Mar 10, 2024 3:51 pm

» Abbandono rifiuti su suolo pubblico
Da marcos79 Dom Mar 10, 2024 3:24 pm

» Relazione annuale consulente ADR
Da tfrab Lun Mar 04, 2024 3:10 pm

» Tassa di concessione governativa: va pagata per ciscuna categoria di iscrizione all'Albo
Da urgada Gio Feb 29, 2024 12:39 pm

» ADR - esenzione nomina consulente per sedi operative
Da tfrab Mer Feb 28, 2024 12:44 pm

» Dubbio Registro per Trasporto Organizzato da
Da GiulioHD650 Lun Feb 26, 2024 1:42 pm


DLL per interoperabilita SISTRI e VS

2 partecipanti

Andare in basso

DLL per interoperabilita SISTRI e VS Empty DLL per interoperabilita SISTRI e VS

Messaggio  Input Ven Dic 13, 2013 3:05 pm

Ciao a tutti,

grazie alle vostre indicazioni sono riuscito a collegarmi con un'applicazione scritta con VS 2008 al SISTRI. Adesso pero' per esigenze di interfacciamento volevo non creare un'applicazione ma una DLL che mettesse a disposizione i metodi necessari ad interrogare il SISTRI.
Qualcuno di voi sa se e' possibile passare il file app.config anche ad una DLL? ci sto sbattendo la testa da qualche giorno e non riesco a capire se e' fattibile e sono io che sbaglio oppure se non e' possibile. Nel caso non fosse possibile secondo voi e' possibile passare dinamicamente le varie voci di app.config??

Scusate ma sono abbastanza neofita di VS.

Grazie
Input
Input
Input
Utente Attivo

Messaggi : 76
Data d'iscrizione : 20.04.11

Torna in alto Andare in basso

DLL per interoperabilita SISTRI e VS Empty Re: DLL per interoperabilita SISTRI e VS

Messaggio  riccardock Ven Dic 13, 2013 4:06 pm

Sì, basta definire una configSection nell'app.config che indichi una classe derivata da ConfigurationSection, in cui le proprietà abbiamo l'attributo ConfigurationProperty che indichi il nome delle proprietà. Ad esempio una classe così definita:

namespace MyNamespace {
public class MyConfig : ConfigurationSection {
[ConfigurationProperty ("myProperty")]
public string MyProperty {
get { return (string) base ["myProperty"]; }
set { base ["myProperty"] = value; }
}
}
}

La dichiari nell'app.config così:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="myConfigSection" type="MyNamespace.MyConfig, MyAssemblyName"/>
</configSections>
<myConfigSection myProperty="myValue" />
</configuration>


Per recuperare i valori è sufficiente una cosa del genere:

public void TestConfig () {
MyConfig myConfig = (MyConfig) ConfigurationManager.GetSection ("myConfigSection");
Console.WriteLine (myConfig.MyProperty);
}




Input ha scritto:Ciao a tutti,

grazie alle vostre indicazioni sono riuscito a collegarmi con un'applicazione scritta con VS 2008 al SISTRI. Adesso pero' per esigenze di interfacciamento volevo non creare un'applicazione ma una DLL che mettesse a disposizione i metodi necessari ad interrogare il SISTRI.
Qualcuno di voi sa se e' possibile passare il file app.config anche ad una DLL? ci sto sbattendo la testa da qualche giorno e non riesco a capire se e' fattibile e sono io che sbaglio oppure se non e' possibile. Nel caso non fosse possibile secondo voi e' possibile passare dinamicamente le varie voci di app.config??

Scusate ma sono abbastanza neofita di VS.

Grazie
Input
riccardock
riccardock
Membro della community

Messaggi : 33
Data d'iscrizione : 08.11.13

Torna in alto Andare in basso

DLL per interoperabilita SISTRI e VS Empty Re: DLL per interoperabilita SISTRI e VS

Messaggio  Input Lun Dic 16, 2013 12:36 pm

Ok grazie.
Così dovrei riuscire a passare alcune proprietà leggendole dal app.config forse però mi sono espresso male nel primo post.
Il mio problema è fare in modo che anche con la DLL venga letto l'intero file app.config.
Se creo un'applicazione Windows con le indicazioni recuperate su questo forum e con il file app.config opportunamente modificato riesco ad interrogare il SIS mentre se il progetto è una DLL quando eseguo questo codice "Dim sisCLI = New ServiceReference1.SIS_WSDLClient()"  ottengo in seguente messaggio di errore:

Impossibile trovare l'elemento endpoint predefinito che fa riferimento al contratto 'ServiceReference1.SIS_WSDL' nel servizio di configurazione client ServiceModel. È possibile che non sia stato trovato nessun file di configurazione per l'applicazione o che nell'elemento client non sia stato trovato un elemento endpoint corrispondente al contratto.

..è per questo che chiedevo come fare a far leggere correttamente il file app.config ad una DLL.
Oppure sto sbagliando strada??  :-)

grazie
Input
Input
Input
Utente Attivo

Messaggi : 76
Data d'iscrizione : 20.04.11

Torna in alto Andare in basso

DLL per interoperabilita SISTRI e VS Empty Re: DLL per interoperabilita SISTRI e VS

Messaggio  riccardock Lun Dic 16, 2013 4:20 pm

Ah ok.
Il file di configurazione viene letto in automatico anche dalle DLL, ovviamente in deploy si deve chiamare come la dll ma con estensione aggiunta .config, tipo myLib.dll.config
Quell'errore, come dice il messaggio, può dipendere dalla mancanza o dall'errata compilazione del tag <system.serviceModel> con le sue apposite sezioni. In pratica devi fare il copia e in colla di tutto il nodo serviceModel dall'eseguibile alla dll.
Poi devi fare attenzione al nome del contratto: la sezione <client> del serviceModel contiene gli "endpoint", ogni endpoint ha un attributo "contract" il cui valore deve coincidere con la proprietà "ConfigurationName" dell'attributo "ServiceContractAttibute" che WCF applica all'interfaccia SIS_WSDL quando crea la Service Reference, tipo:

[System.ServiceModel.ServiceContractAttribute(Namespace="http://www.sistri.it/SIS_WSDL/", ConfigurationName="Service.SIS_WSDL")]
public interface SIS_WSDL {
...
}

In questo caso il contratto si chiama "Service.SIS_WSDL".
A me è capitato lo stesso problema facendo copia e incolla del nodo serviceModel da un altro progetto perché ho usato un nome diverso nella creazione del servizio remoto del SIS.




Input ha scritto:Ok grazie.
Così dovrei riuscire a passare alcune proprietà leggendole dal app.config forse però mi sono espresso male nel primo post.
Il mio problema è fare in modo che anche con la DLL venga letto l'intero file app.config.
Se creo un'applicazione Windows con le indicazioni recuperate su questo forum e con il file app.config opportunamente modificato riesco ad interrogare il SIS mentre se il progetto è una DLL quando eseguo questo codice "Dim sisCLI = New ServiceReference1.SIS_WSDLClient()"  ottengo in seguente messaggio di errore:

Impossibile trovare l'elemento endpoint predefinito che fa riferimento al contratto 'ServiceReference1.SIS_WSDL' nel servizio di configurazione client ServiceModel. È possibile che non sia stato trovato nessun file di configurazione per l'applicazione o che nell'elemento client non sia stato trovato un elemento endpoint corrispondente al contratto.

..è per questo che chiedevo come fare a far leggere correttamente il file app.config ad una DLL.
Oppure sto sbagliando strada??  :-)

grazie
Input
riccardock
riccardock
Membro della community

Messaggi : 33
Data d'iscrizione : 08.11.13

Torna in alto Andare in basso

DLL per interoperabilita SISTRI e VS Empty Re: DLL per interoperabilita SISTRI e VS

Messaggio  Input Mer Dic 18, 2013 12:31 pm

riccardock ha scritto:Ah ok.
Il file di configurazione viene letto in automatico anche dalle DLL, ovviamente in deploy si deve chiamare come la dll ma con estensione aggiunta .config, tipo myLib.dll.config

Sto diventando matto con questo errore..ho visto che il file myLib.dll.config effettivamente viene creato ma come posso fare per capire se lo sta leggendo?
Anzichè far leggere il serviceModel e la sezione client dal file .config non esiste un modo per inserire i valori opportuni nel codice?


Grazie mille
Input
Input
Input
Utente Attivo

Messaggi : 76
Data d'iscrizione : 20.04.11

Torna in alto Andare in basso

DLL per interoperabilita SISTRI e VS Empty Re: DLL per interoperabilita SISTRI e VS

Messaggio  Input Gio Dic 19, 2013 12:34 pm

Risolto!!!
Se puo servire a qualcuno posto qui sotto il codice VB.net
In pratica visto i problemi che avevo nel far leggere il file di configurazione alla DLL sono riuscito ad istanziare quanto necessario direttamente nel codice visto che in teoria i parametri del SIS non dovrebbero cambiare tutti i giorni  Laughing 

ecco il codice:

Dim binding As BasicHttpBinding = New BasicHttpBinding(BasicHttpSecurityMode.None)
binding.Name = "SIS_WSDL"
binding.CloseTimeout = TimeSpan.Parse("00:01:00")
binding.OpenTimeout = TimeSpan.Parse("00:01:00")
binding.ReceiveTimeout = TimeSpan.Parse("00:10:00")
binding.SendTimeout = TimeSpan.Parse("00:01:00")
binding.AllowCookies = False
binding.BypassProxyOnLocal = False
binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
binding.MaxBufferSize = 2147483647
binding.MaxBufferPoolSize = 2147483647
binding.MaxReceivedMessageSize = 2147483647
binding.MessageEncoding = WSMessageEncoding.Text
binding.TextEncoding = Encoding.UTF8
binding.TransferMode = TransferMode.Buffered
binding.UseDefaultWebProxy = True
binding.ReaderQuotas.MaxDepth = 32
binding.ReaderQuotas.MaxStringContentLength = 2147483647
binding.ReaderQuotas.MaxArrayLength = 2147483647
binding.ReaderQuotas.MaxBytesPerRead = 2147483647
binding.ReaderQuotas.MaxNameTableCharCount = 2147483647
binding.Security.Mode = BasicHttpSecurityMode.Transport
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None
binding.Security.Transport.Realm = ""
binding.Security.Message.ClientCredentialType = BasicHttpMessageCredentialType.UserName

Dim EndpointAddress As EndpointAddress = New EndpointAddress(New Uri "https://sisssl.sistri.it/SIS/services/SIS/"))

sisCLI = New sistri.ServiceReference1.SIS_WSDLClient(binding, EndpointAddress)

grazie per l'aiuto

ciao
Input
Input
Input
Utente Attivo

Messaggi : 76
Data d'iscrizione : 20.04.11

Torna in alto Andare in basso

DLL per interoperabilita SISTRI e VS Empty Re: DLL per interoperabilita SISTRI e VS

Messaggio  Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.