Re: Virtual Directory not working



"George Ter-Saakov" <gt-nsp@xxxxxxxxxxx> wrote in message
news:%23iylZua5HHA.4584@xxxxxxxxxxxxxxxxxxxxxxx
1. I am not sure about configuration section. May be that part is not
inheritable. But you can have ScrollKeeperModule in both web.config
sections.
You can remove it first and then add. Look in MSDN (do not know exact
syntax)
something like
<httpModules>
<remove name="ScollKeeperModule">
<add
type="NFission.WebControls.ScrollKeeperModule,NFission.WebControls.ScrollKeeper"
name="ScollKeeperModule" />
</httpModules>

I tried that, but it won't work.

If I add the remove statement to the the Web.Config section of the
www.stfstage.com site, the error about it already being there is gone. But
if I run it as:

www.stf.com/stage

I get the error:

Parser Error Message: Exception in configuration section handler.

Source Error:

Line 3: <section name="scrollKeeper"
type="NFission.WebControls.ScrollKeeperConfigHandler,NFission.WebControls.ScrollKeeper"/>
Line 4: </configSections>
Line 5: <scrollKeeper default="true">
<--- This is the error
Line 6: <page name="testRIA.aspx" scrollKeep="false" />
Line 7: <page name="JpegImage.aspx" scrollKeep="false" />

If I do it from www.stfstage.com, I get the error:

Parser Error Message: There is no 'ScollKeeperModule' module in the
application to remove.

Source Error:

Line 33: </webServices>
Line 34: <httpModules>
Line 35: <remove name="ScollKeeperModule"/>
Line 36: <add
type="NFission.WebControls.ScrollKeeperModule,NFission.WebControls.ScrollKeeper"
Line 37: name="ScollKeeperModule" />

I kind of expected this error, since it would not have been added in the stf
website.

Thanks,

Tom


2. "/myimage.gif" works simply because you have same folders/files in
www.stf.com as in www.stf.com/stage

the page in www.stf.com/stage that references a /myimage.gif is actually
referencing www.stf.com/myimage.gif and not www.stf.com/stage/myimage.gif

When you prefix path with / (like myimage.gif) it's called absolute path.
Browser automaticly adds server name to get full URL.
When you do not have / (like ../../myimage.gif) then it's called relative
path and browser automaticly appends the path of the current page to it.
It has nothing to do with ASP.NET. It's how browser works. If you using ~
in ASP.NET then ASP.NET engine converts ~ to absolute path and appends
current application folder. So if you look at the HTML source you will not
see ~ you will see /stage/

Example: if you page's url is http://www.stf.com/stage/folder1/mypage.aspx
and that page had an <img src="../../myimge.gif">
then you actually refer to
http://www.stf.com/stage/folder1/../..myimage.gif"; wich in turn is
http://www.stf.com/myimage.gif
if that page had an <img src="/myimage.gif" > then it refers to
http://www.stf.com/myimage.gif
if that page had an <img src="myimage.gif" > then it refers to
http://www.stf.com/stage/folder1/myimage.gif


George.







"tshad" <t@xxxxxxxx> wrote in message
news:uBH8YLa5HHA.4928@xxxxxxxxxxxxxxxxxxxxxxx
"George Ter-Saakov" <gt-nsp@xxxxxxxxxxx> wrote in message
news:O1v5JcY5HHA.3916@xxxxxxxxxxxxxxxxxxxxxxx
1. web.config files are inheritable.
So in your case when you have www.stf.com/stage/ ASP.NET takes
web.config from www.stf.com folder and merges it with www.stf.com/stage/
folder. That is why you get an error "The module 'ScollKeeperModule' is
already in the application and cannot be added again"

Then is there no way to do this?

I need to have ScrollKeeper in my system but I need to call it both ways:
as a website (www.stfstage.com) and as a virtual directory
(www.stf.com/stage).

Also, I don't have a problem with any of the other entries in the
web.config files, such as the appSettings:

<appSettings>
<add key="ConnectionString" value="Persist Security Info=False;Data
Source=xx;Initial Catalog=yy;User ID=zz;Password=ff;"/>
</appSettings>

In my case, I have a different database for my live application and one
for my development site. In this case, which one would it use? The one
from www.stf.com or the one from the www.stf.com/stage folder?

2. When you go by www.stf.com/stage/ your root is considered to be
www.stf.com and /stage/ is subfolder. so when you refer to your controls
as '/skins/mth/MainPage.ascx' you actually refer to
www.stf.com/skins/mth/MainPage.ascx which is another application and you
can not do that. And ASP.NET pollitely tells you about it.

You should use ~/ so it will be '~/skins/mth/MainPage.ascx'. ~ symbol
means in root of application. So in your case the ASP.NET will translate
it as www.stf.com/stage/skins/mth/MainPage.ascx

You can use ~ anywere in a code that processed by ASP.NET
Example:
<img src="~/myimge.gif"> -- will not work. The ASP.NET does not parse
plain HTML.
<img src="~/myimge.gif" runat=server> --will work correctly. ASP.NET
parses out any tag that marked as runat=server.

That seems to work as you say.

I did do a trace on this page and here is what it is showing:

PATH_INFO /stage/JobSeeker/displayCompanyJobs.aspx
PATH_TRANSLATED
C:\Inetpub\wwwroot\StfStage\JobSeeker\displayCompanyJobs.aspx

So the system knows what the path is so I am not sure why I need the "~"
but it does work. As you say if I do:

<img src="~/myimge.gif">

It doesn't work and shows as a broken gif. But

<img src="/myimge.gif">

does seem to work and knows to look at the root of the Application. I
would have thought that .net objects would do the same (would have been
more consistent). I would have thought that you would use the "~" for
the exceptions. Oh well.

The other thing that doesn't seem to work is:

<img src="../../myimge.gif">

Which works fine if I call it from www.stfstage.com but why wouldn't it
work here? It has nothing to do with the root of the Application.

Thanks,

Tom


George.






.



Relevant Pages

  • Re: Virtual Directory not working
    ... But you can have ScrollKeeperModule in both web.config ... from www.stf.com folder and merges it with www.stf.com/stage/ folder. ... so when you refer to your controls ... does seem to work and knows to look at the root of the Application. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Page and Images not found on Localhost
    ... I didn't know that even images could be declared as server controls. ... which may not have been declared as a server control. ... I designated the "project" folder as an application in IIS. ... is the root for anything under it. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: Virtual Directory, Paths, Local and Deployed Problem
    ... If you are looking to get to the /images folder from the root. ... In production: http://www.site1.com/images/mygif.gif ... make this a virtual folder in IIS. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: This will stump you
    ... > folder, they are not in the web's root. ... Convert the folder to a subweb - ... > Also clear your IE Temp files ...
    (microsoft.public.frontpage.client)
  • Re: Allocating Internal Flash as Root
    ... folder representing theflash. ... is causing theflashto be mounted, not as the root, by like a storage card. ... have set all the registry settings that I could find in the help ... I boot up the system. ...
    (microsoft.public.windowsce.platbuilder)

Loading