使用IIS Express通过命令行从特定文件夹启动AS​​P.net网站

时间:2017-09-18 08:16:10

标签: asp.net asp.net-mvc iis iis-express

我已经编写并且ASP.net MVC网络应用程序需要安装为"正常"申请(或尽可能接近)。我的意思是,我需要双击exe文件,然后在默认浏览器中打开webappp"行为,或尽可能接近。

习惯了Java,我愚蠢地认为我可以使用和嵌入webserver来运行它,但经过一些研究(纠正我,如果我在这里错了),似乎无法做到(只有ASP。 net Core可以做到这一点,但我使用传统的.NET Framework),Web应用程序需要在IIS或IIS Express中运行。

所以,经过更多的研究,这个页面:

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

似乎建议通过使用以下命令从IIS Express通过特定文件夹启动网站:

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

上面的路径包含我编译的ASP.net MVC网站。

然而,这似乎并不起作用。当我发出该命令时,我得到以下输出:

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

所以基本上IIS Express启动了,但它没有从我指定的文件夹运行我的网站,它运行一些(可以说是)默认的空网站,名为"开发网站"。我检查了一些网址,我可以确认这不是我的网站,只是一个没有网页或其他任何内容的空壳。

我在这里缺少什么?如何通过命令行在IIS Express中启动网站?我必须注册"该网站首先以某种方式?

修改 经过一番研究后,我发现我可以通过以下方式明确注册网站:

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

然后以:

开始
iisexpress.exe /site:MySite

然而,这并没有解决问题:当我通过浏览器浏览网站时,我得到的是404错误,根本没有内容。

有一点我必须指出:由于ASP.net网站被编译成DLL文件,我不明白如何使用FOLDER的路径注册/启动它会如何工作...怎么会IIS Express了解从哪个DLL加载网站?似乎这里缺少一些关键的部分......

1 个答案:

答案 0 :(得分:2)

经过进一步的修修补补,我明白了。我指着网站的/ bin目录。相反,您必须指向父目录,即包含Web.config文件的目录。

所以,就我而言,我改变了:

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

为:

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

现在它可以正常工作