web-dev-qa-db-fra.com

Impossible d'obtenir IIS Express 8 beta pour exécuter le site Web en tant que processus 64 bits

sur x64 Windows 7, j'essaie d'obtenir le site Web Hello World MVC 3 en tant que processus 64 bits (donc Environment.Is64BitProcess renvoie true sur une page) en utilisant IIS Express 8 dernière version bêta d'Express 8.

IIS Express 7.5 est 32 bits mais IIS Express 8 prend en charge 64 bits ( http://learn.iis.net/page.aspx/1266/iis-80-express- readme bêta / ).

Impossible d'obtenir un amour 64 bits.

La construction d'AnyCpu renvoie Is64BitProcess false, la construction de x64 donne "Une tentative a été effectuée pour charger un programme avec un format incorrect." Comme s'il essayait de s'exécuter en tant que processus 32 bits.

Des expériences avec renommer des dossiers, etc. suggèrent que " C:\Program Files (x86)\IIS Express " est la seule chose qui est utilisée, et " C:\Program Files\IIS Express " est ignoré par VS.

Comment puis-je demander à VS d'utiliser l'hôte x64 IIS Express)?

53
bunt

Cette option fait désormais partie de Vs 2013/2015/2017:

Outils | Options | Projets et solutions | Projets Web | Utilisez la version 64 bits de IIS Express

82
Eric Bole-Feysot

À partir d'une réponse de Microsoft à un message du forum sur http://visualstudio.uservoice.com -

Cela fonctionne pour moi même s'il n'est pas approuvé ou pris en charge officiellement par Microsoft.

Mike Harder (Microsoft) a commenté · 31 janvier 2013 17h26.

Vous pouvez configurer Visual Studio 2012 pour utiliser IIS Express 64 bits en définissant la clé de Registre suivante:

reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects/v Use64BitIISExpress/t REG_DWORD/d 1

Cependant, cette fonctionnalité n'est pas prise en charge et n'a pas été entièrement testée par Microsoft. Prise en charge améliorée de IIS Express 64 bits est à l'étude pour la prochaine version de Visual Studio.

Autoriser l'exécution de IIS Express 64 bits à partir de Visual Studio 2012

32
CodeMonkeyKing

Tard dans la fête mais VS2013 l'a dans les Options.

Outils -> Options -> Projets et solutions -> Projets Web -> Utilisez la version 64 bits de IIS Express…

6
Kugel

Vous devez lancer iisexpress à partir de la ligne de commande dans ce cas,

http://learn.iis.net/page.aspx/870/running-iis-express-from-the-command-line/

Comme je ne sais pas quand Microsoft mettra à jour la partie d'intégration VS pour vous permettre de choisir x64 IIS Express. L'intégration actuelle est évidemment x86 uniquement.

3
Lex Li

Dans le registre, accédez à HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\IISExpress\8.0\InstallPath et modifiez le chemin d'accès à l'emplacement 64 bits iisexpress.exe.

3
Ryan Hayton

Procédez comme suit pour exécuter le projet VS2012 dans le projet x64 dans IIS8 Express sur x64. J'exécute le service WCF x64. Voir ci-dessous,

  • Installez la version x64 de IIS Express 8 .

  • Définissez le projet pour exécuter x64 bits.

enter image description here

  • Ajoutez une URL de serveur Web personnalisée. Parce que vous ne voulez pas démarrer le service lors de l'exécution du projet (F5).

enter image description here - Écrivez un fichier bat et ajoutez ce qui suit. Placez l'emplacement UNC correct du fichier applicationhost.config et le nom de projet correct. Enregistrez le fichier bat.

cd "Program Files"/IIS Express 
iisexpress.exe  /config:"\\companyname.com\root\User-Profiles\testusername\Documents\IISExpress\config\applicationhost.config" /site:"YourProjectName.WcfHost" /apppool:"Clr4IntegratedAppPool"
  • Exécutez (F5) le projet.
  • Double-cliquez sur le fichier bat pour démarrer IIS Express 8 pour x64. Voir Gestionnaire des tâches Windows et IIS barre d'état système Express. enter image description here

enter image description here

2
Diganta Kumar

Vous pouvez exécuter IIS Express en mode 64 bits à partir de la ligne de commande, puis utiliser VS "attach to process" pour déboguer.
Voir cette question .
S'amuser.

1
blorkfish

Il semble que la création d'EXE qui ne fasse rien d'autre que de démarrer 64 bits IIS et de le mettre à la place de 32 bits iisexpress.exe Fait le travail.

Voici le code C # que j'ai utilisé pour créer l'EXE:

using System.Diagnostics;

namespace IISExpress64
{
    class Program
    {
        static void Main( string[] args )
        {
            Process.Start( @"C:\Program Files\IIS Express\iisexpress.exe", string.Join( " ", args ) );
        }
    }
}
1
Martin Dvorak

La possibilité simple consiste simplement à définir IIS x64 comme programme de démarrage pour le projet WEB:

Propriétés du projet -> Web -> Démarrer l'action -> Démarrer le programme: c:\Program Files\IIS Express\iisexpress.exe arguments de la commande:/chemin d'accès: {yourProjectPath}/port: {yourPort}

1
Florin Grigoriu