J'ai modifié un morceau de code .NET 4 existant pour créer une nouvelle propriété composée d'un entier nullable. Il s'exécute dans un service Windows.
public static int? Port
{
get;
set;
}
Le concept était que si la valeur était nulle, elle était ignorée, mais si elle ne l'était pas, elle était utilisée (un scénario non par défaut).
if (Port != null)
{
client = new Client( Server, Port.Value );
}
else
{
client = new Client( Server );
}
Sur ma machine, il fonctionne comme prévu.
Cependant, lorsqu'il est déployé sur nos serveurs de test, j'obtiens des exceptions lorsqu'il est appelé à partir d'un site ASP.NET. Voici la sortie formatée de l'exception :
Exception: System.MissingMethodException
Exception Message: Method not found: 'Void NameOfAssembly.set_Port(System.Nullable`1<Int32>)'.
Exception Data: System.Collections.ListDictionaryInternal
Exception TargetSite: ** Unable to GetValue **
Exception HelpLink: NULL
C'est comme si le code n'avait pas été déployé correctement ou qu'il ne trouvait pas les méthodes automatiques get/set. Un collègue a apporté une modification ultérieure qui fonctionne dans notre environnement de test, je ne pense donc pas qu'il s'agisse d'un problème de déploiement.
Je ne vois pas pourquoi cela se produirait, à part peut-être Windows Server (2008 R2) qui fonctionne différemment de Windows 7 où je l'ai développé, mais c'est un peu exagéré.
Quelqu'un a-t-il déjà vu cela ?