web-dev-qa-db-fra.com

VirtualPath était en dehors de la racine de l'application actuelle

Contexte: Application Webforms ASP.NET avec backend VB.NET.

J'ai récemment mis à niveau de Visual Studio 2010 vers Visual Studio 2013 et .NET 4.5.1. Ce code fonctionnait depuis que nous étions sur Visual Studio 2005 et .NET 2.0. Mais depuis la mise à niveau, je reçois cette erreur.

Dans un contrôle utilisateur ASCX.

<script language="javascript" type="text/javascript">
<!--
function SetItem_<%Response.Write(m_strJSAlias)%>(strValue) {
     $("#<%Response.Write(txtShop.ClientID)%>").attr('value',strValue);
    __doPostBack('frmCorpPortal_Form','');
    void FocusOnNext_<%response.Write(m_strJSAlias)%>;
}

Nous obtenons maintenant cette erreur que nous n'avons jamais eue auparavant:

VirtualPath was outside the current application root.
Parameter name: virtualPath 
Description: An unhandled exception occurred during the execution of the current web request.    Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentException: VirtualPath was outside the current application root.
Parameter name: virtualPath


Line 4:  <script language="javascript" type="text/javascript">
Line 5:  <!--
Line 6:  function SetItem_<%Response.Write(m_strJSAlias)%>(strValue) {
Line 7:       $("#<%Response.Write(txtShop.ClientID)%>").attr('value',strValue);
Line 8:      __doPostBack('frmCorpPortal_Form','');

Si je joue avec le fichier et que je fais un changement insensé, l'erreur disparaît. Exemple: ajoutez une ligne vierge entre la ligne 4 et 5. Puis elle revient plus tard.

Qu'est-ce qui peut causer cela?

35
Ken VeArd

J'ai eu le même problème avec une ancienne application dans iis et lors de l'exécution depuis Visual Studio. La désactivation du lien du navigateur dans Visual Studio 2013 semble résoudre ce problème. Cette fonctionnalité injecte du javascript dans votre page et provoque au moins ce problème pour moi. Depuis que je l'ai désactivé, cela fonctionne dans IIS et depuis Visual studio.

http://techatplay.wordpress.com/2013/10/24/vs2013-asp-net-application-error-virtualpath-was-outside-the-current-application-root/

Plus de détails sur la fonctionnalité ici

http://blogs.msdn.com/b/webdev/archive/2013/06/28/browser-link-feature-in-visual-studio-preview-2013.aspx

À la vôtre, crocked

88
Crocked

La désactivation du lien du navigateur dans Visual Studio 2013 a corrigé cela dans mon cas, décochez simplement la case "Activer le lien du navigateur" dans vs (près du bouton Exécuter)

5
Eyad Mansour

J'ai parcouru tout cela et au début, je n'ai pas vu où cliquer car j'avais le projet en cours d'exécution.

Voici une capture d'écran "La désactivation du lien du navigateur dans Visual Studio 2013 semble résoudre ce problème."

enter image description here

2
Tom Stickel

J'avais une URL incorrecte dans les paramètres de mon projet d'application Web. Mise à jour du paramètre pour utiliser l'adresse correcte dans mon local IIS a corrigé le problème pour moi.

Le problème s'est posé pour moi car j'avais un répertoire virtuel différent configuré dans IIS par rapport à celui spécifié dans les propriétés du projet. Je note également que l'ouverture de la réouverture de la solution crée automatiquement un répertoire virtuel de travail automatiquement dans IIS

p

0
Buffeles