问题
I just bought a new Cloud based Virtual machine with Windows server 2016 installed. I also make sure IIS 10 has .NET Framework 4.6 and ASP.NET 4.6 installed.
My ASP.NET MVC application targets .NET 4.5 and is successfully published to the 'Default Web Site' on this server using Web deploy. (You can see all the asp.net mvc published files here)
'Default Web Site' uses 'DefaultAppPool' which has a v4.0 .NET CLR Version.
But when I open the web page in my browser, I received a '403 - Forbidden: Access is denied.' error. I did my research, to me it looks like the IIS never tried to open it as a ASP.NET MVC application. It simply tries to find a physical file with the same name as 'controller/Action'.html and of course it couldn't find it. Solutions I have tried with:
There's another post mentioning the 'UrlRoutingModule-4.0' in IIS Modules configuration. In my case, the routing module is not there for some reason. I added it, but nothing changes. Furthermore, every time I republish the website from VS, the module disappears after the deployment succeeds.
I also tried adding
<modules runAllManagedModulesForAllRequests="true"/>
to my webconfig file, no luck either.Run aspnet_regiis -ir on the server. It says the command can't be run on this operating system but still run it anyway. However, the problem is still there.
回答1:
I finally got it work!!!
The solution is go to control panel and then click 'Turn windows feature on and off', then go to 'Server Roles' -> 'Web Server (IIS)' -> 'Web Server' -> 'Application Development', here you need to make sure both '.NET Extensability 4.6' and 'ASP.NET 4.6' are installed.
Apparently when IIS 10 is installed, these will not be installed by default. Thanks guys for all the help.
回答2:
the reason is asp.net mvc isn't installed completely on the machine.
please read the instruction of install IIS and ASP.NET Modules
Installing IIS and ASP.NET Modules
来源:https://stackoverflow.com/questions/53042531/iis-10-on-windows-server-2016-not-running-my-asp-net-mvc-website