Comment faire pour résoudre « System.Web.HttpException (0x80004005): Le fichier n'existe pas »?

StackOverflow https://stackoverflow.com/questions/4819170

  •  26-10-2019
  •  | 
  •  

Question

Toutes mes excuses si cela a déjà répondu sur ce site, j'ai cherché mais n'a pas trouvé ce scénario exact.

J'ajoute log4net à un service WCF. J'ai ajouté un gestionnaire en cas de Application_Error, et il est attrapant un fichier non trouvé une erreur sur chaque demande.

Je l'ai vu avec des sites Web, et généralement l'erreur peut être retracée jusqu'à ne pas avoir un fichier « favicon » dans le répertoire racine ou à une image manquant référencé dans une feuille de style CSS.

Cependant, ceci est un service WCF, il n'y a pas de CSS stylesheet, et en ajoutant un favicon à la racine n'a pas résolu le problème.

quelqu'un d'autre a-t-une bonne façon de résoudre ce?

Quelques indices:

  • Je n'ai pas déployé ce encore le vrai serveur IIS, je suis en cours d'exécution localement.
  • L'erreur ne se produit pas quand je suis en cours d'exécution à l'intérieur DEBUG Visual Studio, seulement quand j'accéder au service à partir d'un navigateur Web (Internet Explorer ou Chrome)
  • J'ajouté le chemin d'URL et le fichier au message d'erreur, ce qui est ce qu'ils sont:

    URL: http: // localhost: 3994 /

    FilePath: /

    Erreur: System.Web.HttpException (0x80004005). Le fichier n'existe pas

Edit: les valeurs ci-dessus sont ce qui apparaissent dans l'exception journalisés:

protected void Application_Error(object sender, EventArgs e)
{
    var objErr = Server.GetLastError().GetBaseException();
    if (objErr is System.Web.HttpException)
    {
        var filePath = Context.Request.FilePath;
        var url = ((HttpApplication) sender).Context.Request.Url;
        Log.Error("URL: " + url + "; FilePath: " + filePath, objErr);
    } else
        Log.Error("Application Error", objErr);
}

Toute aide serait grandement appréciée.

Était-ce utile?

La solution

La raison est probable que le service n'a pas été spécifié. Lorsqu'un serveur Web (celui dev local ainsi) recieve une demande d'un dossier qu'ils regardent dans ce dossier pour la page par défaut (généralement appelé: index.htm, index.html, default.asp, default.aspx, etc.) et présenter que (sauf si vous utilisez une description de service basé sur REST). Lorsque vous exécutez de VS le débogage vous emmènera directement au service réel.

Dans ce cas parce que vous avez construit un service dont vous avez besoin pour spécifier l'emplacement du service exact à savoir http://localhost:3994/service.svc.

De plus. Si vous commencez une session de débogage, puis modifiez l'URL pour vous http://localhost:3994/ devriez être en mesure de le vérifier est le cas avec le débogueur

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top