Simple Server.MapPath problem?

O

Oberon

Why does this not work as it should?

I expect index.aspx to show:.

Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\inetpub\wwwroot\ChatSimple\db\chatusers.mdb

Instead, I get:

Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=c:\inetpub\wwwroot\ChatSimple\chatusers.mdb\chatusers.mdb

It is running on Windows XP Pro, SP1, IE6.


1) IIS has been set with:

ChatSimple, Properties, HTTP Headers, Enable Content Expiration
(ticked), Content Should "Expire Immediately"

Then restarted from the cmd line with:
net stop W3SVC
net start W3SVC


2) Here is the Global.asax.vb

+ + + + + + +

Imports System.Web
Imports System.Web.SessionState

Public Class Global
Inherits System.Web.HttpApplication

Public Sub New()
MyBase.New()
InitializeComponent()
End Sub

Private components As System.ComponentModel.IContainer
<System.Diagnostics.DebuggerStepThrough()> Private Sub
InitializeComponent()
components = New System.ComponentModel.Container()
End Sub

Sub Application_Start(ByVal sender As Object, ByVal e As
EventArgs)
Application("ChatConnString") =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath("/db/ChatUsers.mdb")
End Sub

End Class

+ + + + + + +

3) Here is the index.aspx page:

+ + + + + + +

<%@ Page Language="vb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html;
charset=windows-1252">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<title>Chat Simple</title>
</HEAD>
<BODY>
<%Response.Write(Application("ChatConnString"))
Response.End %>
</BODY></HTML>

+ + + + + + +
 
O

Oberon

1) I had my browser cache off.

Tools, Internet Options, General, Settings, Check for newer
versions of stored pages - every visit to the page.

2) I switched off IIS caching (see below)

3) I set my HTTP headers (see below)

4) Finally I added even more lines to index.aspx (see new
version below).

5) Restarted IIS, just for good measure.

Nothing worked. Still the same obsolete application variable
shown. Eventually I renamed the application variable to
Application("dbConnString")) - effectively killing the old one.
That worked, but before that, altering the value in the
Application variable did nothing. eg.

Application("ChatConnString") =
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
Server.MapPath("\")

still gave the wrong value.

Now (after renaming the Application variable) the Index.aspx
page is showing nothing, which is an improvement on it showing
the wrong value but ... why didn't the value change when I
re-coded it in Global.aspx.vb.

I'm totally baffled.

+ + + + + + +
New Index.aspx with more code to kill cached pages.
+ + + + + + +
<%@ Page Language="vb" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<meta http-equiv=Content-Type content="text/html;
charset=windows-1252">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<title>Chat Simple</title>
</HEAD>
<BODY>
<% Response.CacheControl = "no-cache" %>
<% Response.Expires = -1 %>

<%Response.Write(Application("dbConnString"))
Response.End %>
</BODY></HTML>
+ + + + + + +

The only thing that actually worked
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top