Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Deploy MVC 5 .Net web to IIS 7.5 (Win2008 R2)

Posted on 2014-11-23
15
Medium Priority
?
2,403 Views
Last Modified: 2014-11-25
Hi,
we have developed a sample site in Visual Studio 2013 using asp.net and C#.

When we run it from the IDE (VS2013) it works ok, but when we deploy it to our IIS 7.5 site it displays a message saying "Error HTTP 403.14 - Forbidden" (web server not configured to browse content directories)

If we try "http://localhost" the IIS site works ok.

Can you please help with this issue?
Thanks.
0
Comment
Question by:José Perez
  • 8
  • 6
15 Comments
 
LVL 75

Expert Comment

by:käµfm³d 👽
ID: 40461462
How are you browsing to the "page"? You need to include a controller and possibly an action in the address bar when you navigate. If you are directly on the server, and if you are trying to browse via IIS Manager, then I believe it default to showing the application root. Include the full destination in your address bar, and it should come up.
0
 
LVL 16

Expert Comment

by:Vikram Singh Saini
ID: 40461486
Did you tried suggestion at link Deploying ASP.NET MVC 3 to IIS 6?

Replace MVC3 to MVC5 and IIS 6 to IIS 7.5. I hope it would help you to deploy website properly. Then test.

Share your testing results.
0
 
LVL 2

Author Comment

by:José Perez
ID: 40462166
This is my RouteConfig.cs file in VS2013
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;

namespace Myiisserver
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }
    }
}

Open in new window


It is supposed that if a user goes to : http://myiisserver/ the  Home page is displayed immediatelly, and that's the way it works in Visual Studio, but when deploying to IIS it does not load :(
0
Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

 
LVL 2

Author Comment

by:José Perez
ID: 40462177
Attached is the inetmgr.exe screenshot.
IIS.png
0
 
LVL 16

Expert Comment

by:Vikram Singh Saini
ID: 40462328
Questions -

1. Share your steps for deployment
2. You didn't answered to kaufmed comment.
3. Did you tried suggestions on link I shared with you?
0
 
LVL 2

Author Comment

by:José Perez
ID: 40462418
I have followed suggestions.
The Controller is 'Home' the Action is 'Index', if I try http://localhost/myiisserver/Home/Index it says "Resource not found" if I only type "http://localhost/myiisserver/" it displays the iis site folder structure.

Attached is the folder structure of the deplyment to IIS.
iis-folder-structure.png
0
 
LVL 2

Author Comment

by:José Perez
ID: 40462455
I found the solution for Windows 8 at Register ASP.NET in IIS 8 on Windows 8

but for Windows Server 2008 R2 I don't know how to do same steps above (in the Server Manager / Features)
Can you please guide me?
0
 
LVL 16

Expert Comment

by:Vikram Singh Saini
ID: 40462636
I faced such issue. So here are notes from diary -

1. Go as per snapshot First - Install features as .Net Framework

Install .Net 4.0 or 4.5 framework as per snapshot
2. Go as per snapshot Second - Add role  services

Add role services so as to make ASP (or MVC) stuff work on Window Server 2008
3. Open cmd on Window Server 2008, and type following command -

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

Replace %windir% by your actual window directory path.

For e.g. C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir  for registering Asp.Net 4.0 if it isn't yet.

4. Restart your system. Deploy your website with DefaultAppPool set to Asp.Net 4.0. Ensure your deployed website to be using same pool.

Test and share testing results.
0
 
LVL 2

Author Comment

by:José Perez
ID: 40462805
It now displays the folder structure list with files. Still does not displays the webpage.
0
 
LVL 2

Author Comment

by:José Perez
ID: 40462813
Here is the image...attached.
iis-folder-structure-iis-server.png
0
 
LVL 16

Expert Comment

by:Vikram Singh Saini
ID: 40463748
Show me snapshot of your system similar to second snapshot I shared with you.

I need to ensure if all steps followed as I asked to do.
0
 
LVL 2

Author Comment

by:José Perez
ID: 40463786
Finally I found the issue... had to configure 'Application Group' in IIS. Change from DefaultAppPool (2.0) to "ASPNet v4.0"
See. Attached image.
Solucion-Deploy-MVC-a-IIS-Windows-2008-S
0
 
LVL 16

Accepted Solution

by:
Vikram Singh Saini earned 2000 total points
ID: 40463796
So that mean you didn't followed suggestions (exactly) in comment id ID: 40462636 where I mentioned as

4. Restart your system. Deploy your website with DefaultAppPool set to Asp.Net 4.0. Ensure your deployed website to be using same pool.
0
 
LVL 2

Author Comment

by:José Perez
ID: 40463803
wow I missunderstood that line to exactly the opposite, sorry.
anyways, you deserve the points.
0
 
LVL 16

Expert Comment

by:Vikram Singh Saini
ID: 40463806
Well! You deserve points too for working on it consistently.

That's why I enjoy development. Because here exists solution to any issue unless we find it.
0

Featured Post

Free Backup Tool for VMware and Hyper-V

Restore full virtual machine or individual guest files from 19 common file systems directly from the backup file. Schedule VM backups with PowerShell scripts. Set desired time, lean back and let the script to notify you via email upon completion.  

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If you are a web developer, you would be aware of the <iframe> tag in HTML. The <iframe> stands for inline frame and is used to embed another document within the current HTML document. The embedded document could be even another website.
OfficeMate Freezes on login or does not load after login credentials are input.
This tutorial will give a short introduction and overview of Backup Exec 2012 and how to navigate and perform basic functions. Click on the Backup Exec button in the upper left corner. From here, are global settings for the application such as conne…
This tutorial will walk an individual through setting the global and backup job media overwrite and protection periods in Backup Exec 2012. Log onto the Backup Exec Central Administration Server. Examine the services. If all or most of them are stop…

885 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question