Visualizzo occasionalmente il seguente errore (apparentemente casuale) nella mia applicazione web. Stiamo eseguendo Windows Server 2008R2, IIS 7.5, MVC3, .NET 4.5.Vedere periodicamente l'errore ASP.NET CS0656: membro richiesto del compilatore mancante
E 'lo stesso errore ogni volta: CS0656: Mancare compilatore membro 'Microsoft.CSharp.RuntimeBinder.Binder.BinaryOperation' richiesto
Quando si verifica questo errore, si può prendere qualsiasi cosa, da un riavvio del pool di applicazioni, per reinstallare la nostra applicazione stessa, per risolverlo.
L'errore si verifica sulle immagini VM nuove di zecca (nessuna installazione precedente del nostro software), così come su macchine su cui in precedenza è stato installato il nostro software. L'errore può verificarsi durante la prima esecuzione dell'applicazione o quando l'applicazione è rimasta abbastanza a lungo da consentire al pool di applicazioni IIS di riciclare il processo di lavoro (così sembra).
Questo sta diventando molto difficile da gestire, poiché ho fatto un sacco di ricerche su questo errore e ho provato più soluzioni, senza fortuna. Inoltre, la frequenza casuale a cui si verifica l'errore ha reso molto difficile la risoluzione dei problemi. Qualsiasi comprensione di questo problema, o idee su possibili soluzioni, sarebbe molto apprezzata. Sono disposto a provare quasi nulla a questo punto.
1) È possibile collegare un debugger a una delle macchine virtuali di test e bloccarlo? 2) Stai usando il DLR? Guardando attraverso l'origine e la documentazione di BCL, sembra che il nome del tipo sia associato a operazioni dinamiche. O forse è l'uso del DLR da parte di MVC? –
È possibile verificare quale versione di Microsoft.CSharp.dll è utilizzata (determinare il percorso con uno strumento come procexp), aprirlo utilizzando uno strumento come .NET Reflector e verificare che il metodo statico di BinaryOperation sia presente? Potrebbe trattarsi di un problema di versione (il compilatore si aspetta una versione più recente di Microsoft.CSharp.dll) –
Stai utilizzando le funzionalità di linguaggio dinamico C#? E comunque sembra un CLR corrotto. –