VS2008 HTTP 403 Help!!

  • Thread starter Thread starter Harry Simpson
  • Start date Start date
H

Harry Simpson

I've been away from ASPNET - I open up a new Web app in VS2008 and go into
properties and select to use IIS instead of the personal web server. Then
I run in debug mode and it says I have to set the Debug= True in the
Web.config which I do. Then try to run it again and it says I must enable
integrated security which I do. I then try to run it again and get the HTTP
403 error - " This error (HTTP 403 Forbidden) means that Internet Explorer
was able to connect to the website, but it does not have permission to view
the webpage."

What have I got to do to get around this to debug a simple ASPNET app?

TIA
Harry
 
Is your ASP.NET application running as an IIS application ?
Does the account ASP.NET runs as, have read permissions to the app's physical directory ?




Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
 
Those were the first things I checked. Yes.
It creates a virtual directory in the project properties. When I go into IIS
I see it as a web app.
 
And I've given full rights on the directory where the web app actual files
reside...
 
re:
!> And I've given full rights on the directory where the web app actual files reside...

To which account did you give rights to ?
Which OS are you running VS 2008 on ?




Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
 
Thanks for hanging in here with me on this one Juan!

I'm running XP SP3

Gave the aspnet_wp account (PHG\ASPNET) full accesss to the directory where
the web app files are physically located.
 
If I'm not mistaken, the account which should be given access rights to any physical directory
which holds ASP.NET files for Windows XP is the MachineName\ASPNET account.

Please save the following code as "identity.aspx" :
-------------------------------------------------------------------------
<%@ Page Language="VB" %>
<%@ Import NameSpace = System.Security.Principal %>
<script runat="server">
Sub Page_Load()
Dim tmp As String = WindowsIdentity.GetCurrent.Name()
Label1.Text = "ASP.NET is running as the account : " & tmp
End Sub
</script>
<html>
<head>
<title>What account is ASP.NET running as ?</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" Runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
-----------------

Save it to the wwwroot directory, and run it as :

http://localhost/identity.aspx

You can click that link after you save the file to the wwwroot directory.
Then, please post back the results you got.

I think you will get back "YourMachineName\ASPNET",
unless you have changed the account by configuring an account to impersonate.




Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
 
Thanks Juan

Got
ASP.NET is running as the account : SIMPSON2\ASPNET

And the physical directory the virtual hits has full access granted to
ASP.NET Machine Account (SIMPSON2\ASPNET)

VS2008 defaults to using the personal server - which works fine - no HTTP
403 error with it. Just when I switch to IIS in VS2008 project popreties -
WEB do I run into problems
Could it be here that things a screwed up?

I set the project URL to the virtual directory
http://localhost/TestWebApp

Thanks
Harry
 
re:
!> Just when I switch to IIS in VS2008 project properties - WEB do I run into problems

I just reproduced what you're seeing.

I think it may be related to VS 2008 running ASP.NET apps as MachineName\Administrator,
while IIS runs them as MachineName\ASP.NET_account, in your case : MachineName\ASPNET
and in my case, MachineName\Network Service.

What I don't understand is why the MachineName\ASP.NET_account's permissions don't take hold,
even though the account is explicitly granted access permissions.

I did find a workaround for your problem which, as mentioned, I was able to reproduce.

What I did was *publish* the project to a disk-based directory.
Then, I created a virtual directory in IIS which points to the directory where the project was published to.

After that, using the option "Open web site" in VS 2008,
allowed me to open, edit and run the published project.

Also, if I open the property pages for the project,
and configure the "Use custom server" option to http://localhost/ApplicationName/,
(the same virtual directory name I created in IIS) I can also browse the project from within VS 2008 using IIS.

So, while this is a good workaround, it looks like you found a bug.
Can you file a bug report at the Connect site ?




Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
 
Sure Juan - what's the url to the "Connect site" ?

Also now after doing this I've getting the following error on build
Error 1 It is an error to use a section registered as
allowDefinition='MachineToApplication' beyond application level. This error
can be caused by a virtual directory not being configured as an application
in IIS. D:\_VS2008 PROJECTS\TestWebApp\TestWebApp\Web.config 70

Seems like the publish took away the projects web app status.

My project now looks like "D:\_VS2008 PROJECTS\TestWebApp\

Looks like when you publish this it just reverts to using the old dev server
and not IIS
http://localhost:4788/TestWebApplication/
which does work but I want to use IIS........

what's the url to the "Connect site" ?

Thanks
Harry
 
re:
!> what's the url to the "Connect site" ?

http://connect.microsoft.com/

You'll need to use your Windows Live ID to sign in.
If you don't have one, create one and then sign in to Connect.

re:
Also now after doing this I've getting the following error on build
!> Error 1 It is an error to use a section registered as
!> allowDefinition='MachineToApplication' beyond application level.

That error is caused by a virtual directory not being configured as an application in IIS.
Check in your IIS Manager, and make sure you created a virtual directory for your app.

re:
!> Looks like when you publish this it just reverts to using the old dev server
!> and not IIS http://localhost:4788/TestWebApplication/
!> which does work but I want to use IIS

You need to open the property pages for the project, and configure the "Use custom server"
option to http://localhost/ApplicationName/, (the same virtual directory name created in IIS)
and you will be able to browse the project from within VS 2008 using IIS.




Juan T. Llibre, asp.net MVP
asp.net faq : http://asp.net.do/faq/
foros de asp.net, en español : http://asp.net.do/foros/
======================================
 
Thanks Juan!

I tried the workaround and could never get it to work - I'll send this to MS
and maybe somebody can help. It's amazing that we're the only two people in
the world that have ever run into this to date....

Harry
(have bug, will find....)
 
Back
Top