2017-09-18 2 views
0

J'ai écrit et l'application Web ASP.net MVC doit être installée en tant qu'application "normale" (ou aussi proche que possible). Par ce que je veux dire, j'ai besoin d'avoir un "double clic sur le fichier exe et le comportement de webappp s'ouvre dans le navigateur par défaut", ou le plus proche possible de cela. Etant habitué à Java, je pensais stupidement que je pouvais utiliser et incorporer le serveur web pour l'exécuter, mais après un peu de recherche (corrigez-moi si je me trompe ici) il semble que cela ne puisse pas être fait (seulement ASP.net Core peut le faire, mais j'utilise le .NET Framework traditionnel) et l'application web doit être exécutée dans IIS ou IIS Express.Démarrage d'un site Web ASP.net à partir d'un dossier spécifique à l'aide d'IIS Express via la ligne de commande

Ainsi, après plus de recherches, cette page:

https://docs.microsoft.com/en-us/iis/extensions/using-iis-express/running-iis-express-from-the-command-line

semble suggérer que le lancement d'un site à partir d'un dossier spécifique via IIS Express est possible, à l'aide d'une commande comme:

iisexpress.exe /path:"C:\Program Files\MyWebsite\bin" 

où le chemin d'accès ci-dessus contient mon site Web ASP.net compilé MVC.

Ceci, cependant, ne semble pas fonctionner. Lorsque je lance cette commande je reçois la sortie suivante:

c:\Program Files\IIS Express>iisexpress.exe /path:"C:\Program Files\MyWebsite\bin" 
Copied template config file 'c:\Program Files\IIS Express\AppServer\applicationhost.config' to 'C:\Users\MyUser\AppData\Local\Temp\iisexpress\applicationhost20179188941639.config' 
Updated configuration file 'C:\Users\MyUser\AppData\Local\Temp\iisexpress\applicationhost20179188941639.config' with given cmd line info. 
Starting IIS Express ... 
Successfully registered URL "http://localhost:8080/" for site "Development Web Site" application "/" 
Registration completed 
IIS Express is running. 
Enter 'Q' to stop IIS Express 

donc IIS essentiellement Express démarre, mais il ne fonctionne pas mon site à partir du dossier que j'ai spécifié, il exécute certains (presumebly) par défaut site vide, appelé « Développement Web Site". J'ai vérifié certaines URL, et je peux confirmer que ce n'est pas mon site Web, mais juste un shell vide sans pages ou autre chose.

Qu'est-ce qui me manque ici? Comment démarrer un site Web dans IIS Express via une ligne de commande? Dois-je d'abord «enregistrer» le site Web?

EDIT: Après un peu plus de recherche, j'ai découvert, je peux enregistrer un site Web explicitement en faisant:

appcmd.exe add site /name:MySite /physicalPath:"C:\Program Files\MyWebsite\bin" /bindings:http://localhost:8081 

puis commencer avec:

iisexpress.exe /site:MySite 

Cependant, cela doesn Ne résous pas le problème: quand je navigue sur le site Web via le navigateur, tout ce que je reçois sont des erreurs 404, il n'y a pas de contenu du tout. Une chose que je dois aussi souligner: depuis un site ASP.net est compilé dans un fichier DLL, je ne comprends pas comment simpy l'enregistrement/démarrage en utilisant un chemin vers un FOLDER fonctionnerait ... comment IIS Express comprendre quelle DLL pour charger le site? On dirait qu'il manque quelques pièces cruciales ici ...

+0

Vous pouvez consulter ce document: https: // docs. microsoft.com/en-us/iis/extensions/using-iis-express/running-iis-express-from-the-command-line. Par défaut, IIS Express utilise la configuration dans applicationhost.config, modifiez la configuration à l'aide de commutateurs donnés. –

+0

@TetsuyaYamamoto: merci, mais y a-t-il un tutoriel/exemple de comment écrire un tel fichier de configuration? J'ai regardé celui par défaut et c'est gigantesque! Je ne sais pas comment commencer à créer mes propres ... des pointeurs? –

+1

Suivez les instructions sur ces articles: https://docs.microsoft.com/en-us/iis/get-started/planning-your-iis-architecture/introduction-to-applicationhostconfig & https://docs.microsoft. com/fr-fr/iis/get-started/planification-votre-architecture-iis/iis-7-et-iis-8-configuration-reference. Les ressources données sont suffisantes pour créer votre propre fichier applicationhost.config. –

Répondre

1

Après avoir encore bricolé, je l'ai compris. Je pointais vers le répertoire/bin du site. Au lieu de cela, vous devez pointer vers le répertoire parent, celui qui contient le fichier Web.config.

Ainsi, dans mon cas, j'ai changé:

iisexpress.exe /path:"C:\Program Files\MyWebsite\bin" 

à:

iisexpress.exe /path:"C:\Program Files\MyWebsite" 

et maintenant il fonctionne correctement