Bonjour à tous,
J'ai un service WCF pour AJAX (*.svc) qui fonctionne bien... quand il fonctionne.
En fait, des fois, en plein milieu d'une session, mon web service me retourne "500 Internal Server Error" au lieu du contenu XML transformé attendu.
Voici mon code (on peut difficilement faire plus simple) :
Et dans mon journal d'erreur "application", lorsqu'il plante, j'ai 1 avertissement et 2 erreurs:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 using System; using System.ServiceModel; using System.ServiceModel.Activation; using System.ServiceModel.Web; using System.Xml; using System.Xml.Xsl; using System.Web; using System.IO; [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class Service { // : WebService // Ajoutez l'attribut [WebGet] pour utiliser HTTP GET [OperationContract] // ResponseFormat=WebMessageFormat.Json, BodyStyle=WebMessageBodyStyle.WrappedRequest [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)] public string DoWork(string nom) { try { string ret = ""; string chemRacine = HttpContext.Current.Server.MapPath("~/"); string ficXml = chemRacine + "xsd7\\LCN010000-001-A-TES-A-02.xml"; string ficXsl = chemRacine + "xsd7\\style\\module.xsl"; XmlTextReader xtr = new XmlTextReader(ficXml); // use an XmlTextReader to open an XML document xtr.WhitespaceHandling = WhitespaceHandling.None; XmlDocument xd = new XmlDocument(); // load the file into an XmlDocument xd.Load(xtr); XslTransform xslt = new XslTransform(); // load an XSLT file xslt.Load(ficXsl); MemoryStream stm = new MemoryStream(); // perform the transformation in memory XsltArgumentList args = new XsltArgumentList(); xslt.Transform(xd, args, stm); stm.Position = 1; // and dump the results StreamReader sr = new StreamReader(stm, System.Text.Encoding.Default); ret = sr.ReadToEnd(); sr.Close(); xtr.Close(); // Close the reader */ return System.DateTime.Now.ToString("HH:mm:ss") + ": " + ret; } catch (Exception exec) { return "XML KO: " + exec.ToString(); // Si il y a des erreurs, on les affiche à l'écran } } }
Avertissement:
Erreur:Code de l'événement*: 3005
Message d'événement*: Une exception non gérée s'est produite.
Heure de l'événement*: 13/12/2010 10:43:34
Heure de l'événement (UTC)*: 13/12/2010 09:43:34
ID d'événement*: 4287856719ea439db397a643a1fafa3c
Séquence d'événements*: 71
Occurrence de l'événement*: 6
Code de détail de l'événement*: 0
Informations d'application*:
Domaine d'application*: /LM/W3SVC/1/Root/SNCF-1-129367013864336630
Niveau de confiance*: Full
Chemin d'accès virtuel de l'application*: /SNCF
Chemin d'accès à l'application*: C:\Inetpub\wwwroot\SNCF\
Nom d'ordinateur*: SEI101545
Informations sur le processus*:
ID de processus*: 3788
Nom du processus*: aspnet_wp.exe
Nom du compte*: SEI101545\ASPNET
Informations sur l'exception*:
Type d'exception*: FileNotFoundException
Message d'exception*: Impossible de charger le fichier ou l'assembly 'App_Web_dmolphos, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Le fichier spécifié est introuvable.
Informations sur la demande*:
URL de la demande*: http://sei101545/SNCF/PageMembers/Se...=OBJ13/12/2010 10:43:34A+divTvSsElmt_0_0
Chemin d'accès à la demande*: /SNCF/PageMembers/Service.svc/DoWork
Adresse d'hôte de l'utilisateur*: 10.4.1.24
Utilisateur*:
Est authentifié*: False
Type d'authentification*:
Nom du compte de thread*: SEI101545\ASPNET
Informations sur le thread*:
ID de thread*: 6
Nom du compte de thread*: SEI101545\ASPNET
Emprunte une identité*: False
Trace de la pile*: à System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
à System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
à System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
à System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
à System.Reflection.Assembly.Load(String assemblyString)
à System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
à System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)
à System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
à System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
Détails de l'événement personnalisé*:
Pour plus d'informations, consultez le centre Aide et support à l'adresse http://go.microsoft.com/fwlink/events.asp.Est ce que ça parle à quelqu'un ?WebHost failed to process a request.
Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/3672011
Exception: System.ServiceModel.ServiceActivationException: Le service «*/SNCF/PageMembers/Service.svc*» ne peut pas être activé en raison d’une exception lors de la compilation. Le message de l’exception est*: Impossible de charger le fichier ou l'assembly 'App_Web_dmolphos, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Le fichier spécifié est introuvable.. ---> System.IO.FileNotFoundException: Impossible de charger le fichier ou l'assembly 'App_Web_dmolphos, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' ou une de ses dépendances. Le fichier spécifié est introuvable.
Nom du fichier*: 'App_Web_dmolphos, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
à System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
à System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
à System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
à System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
à System.Reflection.Assembly.Load(String assemblyString)
à System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
à System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)
à System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
à System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)
AVT*: le journal de liaison d'assembly est désactivé.
Pour activer le journal des échecs de liaison d'assembly, attribuez la valeur 1 à la valeur de Registre [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD).
Remarque*: une certaine perte de performance est associée à l'enregistrement dans le journal des échecs de liaison d'assembly.
Pour désactiver cette fonctionnalité, supprimez la valeur de Registre [HKLM\Software\Microsoft\Fusion!EnableLog].
--- Fin de la trace de la pile d'exception interne ---
à System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)
à System.ServiceModel.Activation.HostedHttpRequestAsyncResult.End(IAsyncResult result)
Process Name: aspnet_wp
Process ID: 3788
Pour plus d'informations, consultez le centre Aide et support à l'adresse http://go.microsoft.com/fwlink/events.asp.
Partager