Thursday, October 11, 2012

Publish a .NET 3.5 Website to Windows Server 2008 IIS 7



Install the Web Server Role
  • In Role Services, select ASP.NET and continue.
Install the .NET 3.5 Framework
Publish Your Application
  • In Visual Studio, publish your web project to a local folder, like on the desktop.
  • Copy that folder to a local folder on the webserver, maybe somewhere like c:\apps.
  • From the IIS Manager, right click your Default Web Site and "Add Application".  I ran the "Test Settings" button and there was an authorization warning but I continued on.
Enable ASP.NET Impersonation on your Website
  • If you're using Forms authentication, I think it's necessary to enable this setting, otherwise your permissions aren't in effect and anyone can browse anywhere.
  • IIS -> Your website -> Authentication -> Enable ASP.NET Impersonation.
Test your Application
  • Open a browser, and try http://localhost, verify that the IIS 7 page comes up and you know IIS 7 is installed correctly.
  • Then test your application by browsing to http://localhost/your_application.
Troubleshooting
  • If you receive .NET 3.5.0.0 reference errors or csc.exe not found, make sure you've installed the .NET 3.5 framework.
  • If your web page does not display correctly, or images are missing, check all of your url links.  I had to fix lots of url links, images, scripts, css files, sitemap files.  I've learned it's best to replace any css or html url links with asp.net objects.  For example, instead of using the <img> html tag (which VS creates if you drag an image onto the designer), use the <asp:Image> tag instead.  And for all of your url links, use an absolute path like "~/Images/".
  • If you receive an error connecting to a local database, "Invalid login for NT AUTHORITY/NETWORK SERVICE"... open SQL Management Studio, add a new login, find the NETWORK SERVICE credential and grant that login db_owner permissions for your database.