Di Muso (del 09/02/2017 @ 00:11:23, in Informatica, linkato 1517 volte)
We have encountered a CIL compilation issue for a custom class which referenced a custom VS project in the AOT.
The errors gave no indication as to the cause and looked as follows:
Cannot create a record in Compiler information (TmpCompilerOutput). Path: \Classes\\, Warning: No proxy found. Type FileIOPermission found on the stack. This code in Class: , Method: .
The record already exists.
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
The interesting thing is, that the class in question compiled fine. However, when we looked at it in the AOT, right after the CIL generation failed, and hovered over the method’s signature line, we saw a context error message stating: CIL generation: Error: .NET Cast Type Name not found. Type System.String found on the stack. This code in Class/Table: , Method: may not work in CIL run time.
In order to resolve we copied the Microsoft.Dynamics.AX.Xpp.Support.dll assembly from the Server/Bin to Client/Bin, which produced a clean CIL compilation.
If you can, before to adopt this solution, I suggest to restart the AOS!!
Di Muso (del 09/02/2017 @ 00:11:23, in Informatica, linkato 1211 volte)
We have encountered a CIL compilation issue for a custom class which referenced a custom VS project in the AOT.
The errors gave no indication as to the cause and looked as follows:
Cannot create a record in Compiler information (TmpCompilerOutput). Path: \Classes\\, Warning: No proxy found. Type FileIOPermission found on the stack. This code in Class: , Method: .
The record already exists.
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
The interesting thing is, that the class in question compiled fine. However, when we looked at it in the AOT, right after the CIL generation failed, and hovered over the method’s signature line, we saw a context error message stating: CIL generation: Error: .NET Cast Type Name not found. Type System.String found on the stack. This code in Class/Table: , Method: may not work in CIL run time.
In order to resolve we copied the Microsoft.Dynamics.AX.Xpp.Support.dll assembly from the Server/Bin to Client/Bin, which produced a clean CIL compilation.
If you can, before to adopt this solution, I suggest to restart the AOS!!
Di Muso (del 25/03/2014 @ 13:27:12, in Informatica, linkato 2905 volte)
tratto da : http://yasirnedian.blogspot.ch/
In this post we will look at how can we delete a label file in Dynamics AX 2012.Labels are no longer a file system like we had in 2009. We now have a new node in AOT - Label Files.
If you search in your application folder, you wont find the label file there.The application folder is located here.
"C:\Program Files\Microsoft Dynamics AX\60\Server\MicrosoftDynamicsAX\bin\ Application\ Appl\Standard".
In Dynamics AX 2012, the label file is imported in your current model.
Now let us restart the AOS and see what happens. After restarting the AOS, go back to your application folder and try to find the label file again. This time the label file will be found.On every AOS restart, all label files will be copied to the application folder from the model store. So your label files are contained in your models but they are stored in your application folder as well.
Now let us try to delete the label file. Right click on your label file. Do you see a delete/remove option?
The answer is "No". so how do we delete the label file then? Below is the method by which a label file can be deleted easily.
To create a temporary model
Move our label file to the temporary model
Stop the AOS
Delete the temporary model
Start the AOS
Let 's do step by step.
Go to Tools -> Model management -> Create model.
Enter name as TmpModel. Press OK. You will recieve an info message saying “The model TmpModel was created successfully in layer usr.”
Right click on your label file and select “Move to model”.
Select the TmpModel checkbox and press OK.
Stop the AOS.
Open command prompt (Microsoft Dynamics AX 2012 Management Shell). We will be using the command line utility AXUTIL to delete the model.
Issue the following command in the command prompt.
AXUTIL delete /model:TmpModel
You will be prompted if you want to delete the model or not. Press Y
Start the AOS.
Delete the label file from your application folder as well.
When you open AX now, you will get a dialog saying that “Your model store has been modified.” This is normal because each time you perform an operation on a model, you will get this dialog. Depending on your operation, you should select one of the option. Since we just deleted a model which just had a label file, select Skip.
Open AOT and notice that the label file is deleted now.
Di morale (del 21/04/2013 @ 20:00:00, in Politica, linkato 6901 volte)
Al riguardo, la valutazione più acuta è dello stesso Napolitano:
“La mia rielezione sarebbe una non soluzione perché ora ci vuole il coraggio di fare delle scelte, di guardare avanti, sarebbe sbagliato fare marcia indietro, sarebbe ai limiti del ridicolo. Tutto quello che avevo da dare ho dato. Niente soluzioni pasticciate e all’italiana” (14 aprile 2013).
Non si vuole esprimere un polemico giudizio sulla scelta del Presidente di acconsentire alla sua rielezione. Quindi, nessuna critica personale al Presidente Napolitano, il quale, suo malgrado, si deve essere trovato in queste ultime settimane a dovere prendere scelte, che mai avrebbe verosimilmente voluto compiere.
It was a standard installation of MySQL (typical install option) on plain Windows 8 Standard and the same for Windows 7. The test run was a batch of 500.000 INSERT commands in an SQL script. Runtime was 4 minutes on Win7 and 4 hours Win8.
Some tests later we found out that it was only bad on InnoDB. Finally we nailed the problem down to one parameter in MySQL:
Each INSERT statement is a single transaction (autocommit mode). MySQL is configured very faithfully and ensures that each transaction is really stored on disk. This is necessary for ACID compliance. D in ACID stands for 'durability'. To store data durable, at least the log file has to be written physically. That's why MySQL when a transaction commits forces the operating system to flush its buffers and even forces the disk cache to flush its buffer. That's the meaning of flush_log_at_trx_commit = 1 in the my.ini or my.cnf file.
MSSQL is much more relaxed with your data. It writes the data to disk device. But it may stay in the disk cache, and MSSQL does not care. If you have a crash, your data is not up-to-date on the physical disk and you may lose data. This is definitely not ACID compliant. Microsoft documented this here:
By default, the disk cache is enabled. Use the 'Disk Properties', Hardware tab to access the 'Properties', 'Policy' tab to control the disk cache setting. (Note Some drives do not honor this setting. These drives require a specific manufacturer utility to disable cache.)
...
Disk caching should be disabled in order to use the drive with SQL Server.
So to have a fair comparison beween MSSQL and MySQL either
set innodb_flush_log_at_trx_commit = 2 This forces the flush to disk only once per second and brings good performance but data is not 100% safe on disk (unless you have a battery backed write cache)
disable the disk cache in Windows 8 This will force MSSQL to write physically to disk. And then Win8 is 30 times slower than before.
If you need more info on the different cache levels for file IO here is a very good link:
Di Muso (del 07/09/2012 @ 12:08:49, in Lo sapevi che , linkato 7107 volte)
Scalcinet è un sito web con una semplice finalità: permettere agli utenti di offrire oggetti di loro proprietà o ricercare oggetti offerti da altri utenti. Il tutto si svolge nello spirito di piena collaborazione della comunità, dove si spera che le reciproche necessità possano venire soddisfatte: chi non ha più bisogno di un oggetto, invece di buttarlo, può trovare qualche persona interessata ad esso e, viceversa, chi ha bisogno di qualche oggetto può sperare di trovare qualcuno che lo offra gratuitamente.
Lo spirito principale del sito è la totale assenza di fini di lucro. La registrazione e l'utilizzo del sito sono completamente gratuiti, e anche gli annunci inseriti dagli utenti non devono prevedere nessun corrispettivo in denaro. Gli oggetti trattati possono essere di ogni genere, ovviamente non devono trattarsi di oggetti considerati illegali dalle leggi del paese di appartenenza.
Scalcinet è un sito molto giovane e per questo, al momento, non presenta ancora una grande quantità di oggetti messi a disposizione, ma speriamo che in futuro possa crescere gradualmente e diventare un valido supporto e un punto di riferimento per chi è interessato a operazioni di questo genere. Ovviamente gli annunci, visto il loro carattere gratuito, sono sfruttabili solo localmente, quando gli utenti interessati possono incontrarsi di persona per effettuare l'operazione. Se le distanze sono troppo elevate e il costo per effettuare il passaggio diventa maggiore del valore dell'oggetto, l'utilizzo del sito diventa pressochè inutile, sebbene gli utenti sono comunque liberi di scegliere ogni modalità per concludere la trattativa. Il sito è, però, utilizzabile indistintamente da ogni parte del mondo, questo comporta che ogni utente interessato, anche se al momento non trova nessun annuncio nelle vicinanze, può provare a costituire la propria comunità locale per lo scambio gratuito di oggetti, invitando i propri amici e conoscenti e facendo in modo che il sito sia il più possibile conosciuto nella sua zona. Scalcinet, in questo senso, è solo lo strumento tecnologico che vi viene messo a disposizione. Costruire una rete di utenti a distanza accettabile dipende anche da voi.
Sempre per facilitarne l'utilizzo da più parti del mondo, Scalcinet è un sito multilingua. Al momento è tradotto in inglese, italiano e francese ma altre lingue possono essere aggiunte con poco sforzo, a patto di possedere le traduzioni necessarie. Anche in questo caso, se siete interessati ad avere il sito in una nuova lingua, potete contribuire direttamente, contattando gli amministratori del sito che vi forniranno tutte le parti da tradurre.
L'utilizzo del sito è molto semplice e immediato, nonostante ciò sono presenti molte funzionalià e caratteristiche per coprire ogni possibile esigenza da parte degli utenti. In fondo potete trovare una lista completa divisa per attività.
Riteniamo che Scalcinet, visto il suo spirito e la sua finalità, non richieda notevoli misure di sicurezza e di privacy. Ciò nonostante le regole basilari per l'esistenza in internet vengono rispettate. La navigazione del sito e la ricerca e consultazione degli annunci è accessibile a tutti gli utenti, se invece si vogliono inserire degli annunci propri, allora bisogna registrarsi. La registrazione è comunque molto semplice e veloce, e l'unico dato personale che vi verrà richiesto è un indirizzo di posta valido. Agli altri utenti del sito sarete noti solo tramite lo username che darete durante la registrazione. La vostra password sarà salvata in modo criptato sul nostro server, questo significa che nemmeno gli amministratori potranno leggerla. Un discorso particolare merita l'indicazione esatta della posizione geografica in cui sono situati gli oggetti che inserite. Questa indicazione può rivelare agli altri utenti il vostro indirizzo e, con opportune ricerche in internet, il vostro nome reale. Indicare dove sono situati i vostri oggetti non è obbligatorio per Scalcinet, è solo un'opzione che avete a disposizione, anche se, secondo noi, non avrebbe molto senso non utilizzarla. Il sito perderebbe quasi completamente la sua utilità se fosse possibile trovare gli oggetti che stiamo cercando, ma non avessimo la minima idea di dove fossero situati. Se proprio tenete alla vostra privacy, e non volete rivelare il vostro indirizzo, il nostro consiglio è quello di indicare in Scalcinet un luogo approssimativo, spostato di qualche chilometro da quello reale. In questo modo nessuno potrà risalire ai vostri dati privati, ma gli altri utenti potranno comunque avere un'idea di dove si trovano gli oggetti che avete messo a disposizione.
Da un punto di vista tecnico, per chi fosse interessato, Scalcinet utilizza alcuni servizi e tecnologie per migliorare l'esperienza e l'utilizzo quotidiano da parte dei suoi utenti. Viene utilizzato Google Maps per specificare esattamente la propria posizione attuale. Questa operazione, anche se non obbligatoria, permette di effettuare le ricerche in modo mirato, e con l'utilizzo di Google Maps risulta di una semplicità assoluta. Se l'utente non specifica la propria posizione, quest'ultima viene ricavata molto approssimativamente utilizzando il servizio di geolocalizzazione di MaxMind. Per il carico delle immagini degli oggetti viene utilizzato Adobe Flash Player. In questo modo è possibile controllare immediatamente il tipo e la grandezza dei file caricati senza aspettare che l'intero file venga passato al server. Molte pagine utilizzano la tecnologia Ajax, che permette l'aggiornamento di alcune informazioni a video senza dover ricaricare l'intera pagina. Questo permette alcuni effetti molto gradevoli, tipo lo slideshow degli annunci, altrimenti impossibili o troppo lenti. Il sito fa largo uso anche di javascript e di alcune caratteristiche introdotte dagli standard HTML5 e CSS3, questo implica che sui browser più moderni il sito potrà avere un aspetto più piacevole, rispetto a browser più obsoleti.
INSERIMENTO DI UN ANNUNCIO - selezione della categoria e sotto-categoria - specifica di una o più caratteristiche (obbligatorie o facoltative) dipendenti dalla categoria selezionata - descrizione generale - inserimento fino a tre immagini
RICERCA/LISTA DEGLI ANNUNCI - filtro in base alla categoria e sotto-categoria - filtro in base alla distanza dalla propria posizione attuale (o nel proprio paese) - ricerca per parola chiave
GESTIONE/CONSULTAZIONE DEGLI ANNUNCI - nascondi e pubblica un annuncio - elimina o segna come consegnato un annuncio - modifica un annuncio già inserito - contatta il proprietario di un altro annuncio - vedi i dettagli di un oggetto - zoom delle immagini di un oggetto - calcola il percorso per raggiungere un oggetto (tramite Google Maps)
Di Muso (del 30/07/2012 @ 10:27:14, in Informatica, linkato 7119 volte)
Come capita piu' o meno a tutti, anche io sono stato vittima di spam, quindi vi scrivo questa breve guida per inserire nel vostro bel dBlog il reCaptcha. AVVISO che l'eliminazione dello spam NON e' IMMEDIATA!!! Suppongo per una questione di caching delle pagine sui server in giro per il mondo che permettono un accesso alle pagine con il vecchio codice. Cmq Tempo un mesetto e tutto si risolve.
File da modificare: - articolo.asp - commenti_invio.asp
in ordine dovrete sostituire in articolo.asp le seguenti righe (cioe' il form):
con il seguente form
mentre in commenti_invio.asp sostituire :
Dim SQLCommenti, RSCommenti, FIDA, FIDF, FIDFotografia, FIDArticolo, FCommento, FAutore, FLink, FTipologia, Errore, SQLControlloAutore, RSControlloAutore, ArrayParoleNonAmmesse, IArrayParoleNonAmmesse, ParolaNonAmmessaFiltrata, IParolaNonAmmessa, SQLCommentiTitoloRelativo, RSCommentiTitoloRelativo, TitoloRelativo
'Se i commenti sono abilitati eseguo l'invio If Abilita_Commenti Then
If Request.Form("campoNascosto") = "" Then
If CheckCAPTCHA(Trim(Request.Form("strCAPTCHA"))) Then
'Effettuo il controllo sul parametro id
con le seguenti, ricordandovi di inserire la VOSTRA private key nella riga recaptcha_private_key = "your_private_key" ' your private key
recaptcha_challenge_field = Request("recaptcha_challenge_field")
recaptcha_response_field = Request("recaptcha_response_field")
recaptcha_public_key = "6LegAcASAAAAADYH-RDuZqrp7QdFr_VXaFd8BWe6" ' your public key
recaptcha_private_key = "your_private_key" ' your private key
Dim SQLCommenti, RSCommenti, FIDA, FIDF, FIDFotografia, FIDArticolo, FCommento, FAutore, FLink, FTipologia, Errore, SQLControlloAutore, RSControlloAutore, ArrayParoleNonAmmesse, IArrayParoleNonAmmesse, ParolaNonAmmessaFiltrata, IParolaNonAmmessa, SQLCommentiTitoloRelativo, RSCommentiTitoloRelativo, TitoloRelativo, WordNotPermitted
'Se i commenti sono abilitati eseguo l'invio
If Abilita_Commenti Then
If Request.Form("campoNascosto") = "" Then
server_response = ""
newCaptcha = True
if (Request.Form("recaptcha_challenge_field") <> "" or Request.Form("recaptcha_response_field") <> "") then
Dim VarString
VarString = _
"privatekey=" & recaptcha_private_key & _
"&remoteip=" & Request.ServerVariables("REMOTE_ADDR") & _
"&challenge=" & Request.Form("recaptcha_challenge_field") & _
"&response=" & Request.Form("recaptcha_response_field")
Dim objXmlHttp
Set objXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
objXmlHttp.open "POST", "http://www.google.com/recaptcha/api/verify", False
objXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
objXmlHttp.send VarString
Dim ResponseString
ResponseString = split(objXmlHttp.responseText, vblf)
Set objXmlHttp = Nothing
if ResponseString(0) = "true" then
'They answered correctly
server_response = ""
else
'They answered incorrectly
server_response = ResponseString(1)
end if
newCaptcha = False
end if
if server_response <> "" or newCaptcha then
if newCaptcha = False then
%>
If FIDA <> 0 OR FIDF <> 0 Then
FCommento = Replace(SostituisciCaratteri(Request.Form("Commento"), "No"), VbCrLf, " ")
If Len(Testo_Parole_NonAmmesse) > 0 AND Len(FCommento) > 0 Then
ArrayParoleNonAmmesse = Split(Testo_Parole_NonAmmesse, ",")
For IArrayParoleNonAmmesse = 0 To UBound(ArrayParoleNonAmmesse)
ParolaNonAmmessaFiltrata = ""
con
Dim foundCommento
Dim foundAutore
Dim foundLink
Dim foundIPas
Dim FIp
Errore = False
WorldNotPermitted = False
If FIDA <> 0 OR FIDF <> 0 Then
FCommento = Replace(SostituisciCaratteri(Request.Form("Commento"), "No"), VbCrLf, " ")
FAutore = SostituisciCaratteri(Request.Form("Autore"), "No")
FLink = SostituisciCaratteri(Request.Form("Link"), "No")
FTipologia = Request.Form("Tipologia")
FIp = Request.ServerVariables("REMOTE_ADDR")
If Len(Testo_Parole_NonAmmesse) > 0 AND Len(FCommento) > 0 Then
ArrayParoleNonAmmesse = Split(Testo_Parole_NonAmmesse, ",")
For IArrayParoleNonAmmesse = 0 To UBound(ArrayParoleNonAmmesse)
'START Add by muss 20120615
foundCommento = InStr(FCommento, ArrayParoleNonAmmesse(IArrayParoleNonAmmesse))
foundAutore = InStr(FAutore, ArrayParoleNonAmmesse(IArrayParoleNonAmmesse))
foundLink = InStr(FLink, ArrayParoleNonAmmesse(IArrayParoleNonAmmesse))
foundIP = InStr(FIp, ArrayParoleNonAmmesse(IArrayParoleNonAmmesse))
If (foundCommento <> 0) OR (foundAutore <> 0) OR (foundLink <> 0) OR (foundIP <> 0) Then
'If foundCommento = True Then
WorldNotPermitted = True
Errore = True
End If
'END by muss 20120615
ParolaNonAmmessaFiltrata = ""
Dopodiche' entrate come amministratori nel pannello di controllo di dBlog, andate nella sezione "Configurazione", dal menu' a tendina scegliete "Commenti".
A questo punto bisogna fare due modifiche, agli ultimi due campi in fondo:
- alla voce "Testo del campo Captcha anti-spam:" lasciare solo "Anti-Spam:" cancellando il resto
- alla voce "Errore campo Captcha numeri sbagliati" inserite una frase a piacere, Io ho inserito la seguente "le parole inserite in reCaptcha non sono corrette"
Qualche post da ip cinese lo riceverete ancora ma si tratta di un paio di post alla settimana (almeno nel mio caso).
Anche per questo ho aggiunto un controllo sulle parole ammesse anche nella firma e nell'IP che viene registrato, quindi se entrate come amministratori nella console alla voce commenti potete inserire un po' di parole o indirizzi ip che volete filtrare.
Se avete problemi contattatemi via mail, sono sempre presissimo e rischiate che passino giorni prima di ricevere una risposta a un commento inserito quì.
My new Galaxy Note is great, but I get an error whenever I try to have it sync with my Samsung account in Settings. It asks for my password, I put it in correctly--the same password that works fine on the Samsung Dive web site--and I get an error that says "The value of userauth_token parameter is incorrect."
The suggestion is to remove and then re-add the Samsung account. I did so, and it now works. So, there's a possible solution for anyone else who may experience this problem in the future.
Di Muso (del 07/06/2012 @ 20:00:00, in Societa', linkato 3977 volte)
Ho trovato un articolo che riguarda un'azienda agricola che deve svuotare il magazzino per potersi rimettere in pista dopo il sisma. Per questo vende il Parmigiano Reggiano ai seguenti prezzi: - 14 mesi a 11,5 € al Kg in confenzioni da 500gr oppure da Kilo sottovuoto - 27 mesi a 13 € al Kg in confenzioni da 500gr oppure Kilo sottovuoto - Crema spalmabile a 11 € al Kg in confezioni da 250gr