• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 380
  • Last Modified:

Problem with Request.ApplicationPath

Hi,
I have following function

if ((userName == null) || (userName.Length <= 0))
{
   string login = Request.ApplicationPath + "/login.aspx";
   string js = string.Format ("<script langauge=\"javascript\">window.parent.location.href = '{0}';</script>",login);
   this.RegisterStartupScript("login", js);  
}

this works fine with my localhost and windows xp but on windows 2000  string login = Request.ApplicationPath + "/login.aspx"; gives only http://login.aspx instead of the whole application path/login.aspx.....does anyone know why Request.ApplicationPath  is not able to get the path on windows 2000 and how can one resolve this.
Thanks
0
aspnetdev
Asked:
aspnetdev
  • 6
  • 3
  • 2
  • +1
1 Solution
 
YZlatCommented:
try replacing

Request.ApplicationPath
with

Server.MapPath(Request.ApplicationPath)
0
 
ethothsCommented:
WHen you talk about the differente machines do you mean clients or have you installed your web on these servers?

If the latter have you configured the application correctly in IIS?

0
 
ethothsCommented:
Forget YZlat answer. This will return the physical (folder) location of the app!
0
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

 
aspnetdevAuthor Commented:
basically windows2000 is my staging server....i have iis installed there too....and i copied all my dlls and aspx pages anf everything works fine except this Request.ApplicationPath...i heard that  in windows 2000 you can create multiple defaults sites unlinke xp where u have one default site...underwhich u create the virtual dir...im confused
0
 
aspnetdevAuthor Commented:
These are not clients ....i have installed my app there...its server by itself
0
 
nauman_ahmedCommented:
You can use something like the following:

string strURL = "http://"+Request.ServerVariables["SERVER_NAME"]+"/"+Request.ServerVariables["URL"];
string strScriptPath = Request.ServerVariables["SCRIPT_NAME"];
string[] strScriptPathArr = strScriptPath.Split('/');
string strScriptName = strScriptPathArr[strScriptPathArr.Length - 1];
strURL = strURL.Replace(strScriptName,"")+"/login.aspx";

--Nauman.

0
 
YZlatCommented:
did you try using CurrentExecutionFilePath instead?
0
 
ethothsCommented:
In 2000 just put your site as a folder in c:\inetpub\wwwroot\MyApp

The in IIS click on the create application button.
0
 
aspnetdevAuthor Commented:
Nauman ,i tried your solution but ,if im in like http://MyDir/Sub1/Sub2/test.aspx,then its redirecting me to
http://MyDir/Sub1/Sub2/login.aspx instead of  http://MyDir/login.aspx
0
 
aspnetdevAuthor Commented:
Nauman ...i can be in  http://MyDir/Sub1/Sub2/Sub3/test1.aspx,yours solution is getting me
 http://MyDir/Sub1/Sub2/login.aspx rather than  http://MyDir/login.aspx....can you please reply asap.TY
0
 
nauman_ahmedCommented:
ok..if login.aspx is in the web site root than just use the following:

if ((userName == null) || (userName.Length <= 0))
{
   string login = "http://"+Request.ServerVariables["SERVER_NAME"]+"/login.aspx";
   string js = string.Format ("<script langauge=\"javascript\">window.parent.location.href = '{0}';</script>",login);
   this.RegisterStartupScript("login", js);  
}

--Nauman.
0
 
aspnetdevAuthor Commented:
Iam using this way ...and implementing it on win2k server

string userName = UtpContextManager.UserName;
 if ((userName == null) || (userName.Length <= 0))
  {
     string login;
     if(Request.ApplicationPath == null)
      {
          loginFile = "http://"+Request.ServerVariables["SERVER_NAME"]+"/login.aspx";
       }
     else
      {
         login = Request.ApplicationPath + "/login.aspx";
      }
 
  string js = string.Format ("<script langauge=\"javascript\">window.parent.location.href = '{0}';</script>",login);
   this.RegisterStartupScript("login", js);  

Let me try it ...and if this works 500 are yours :)
actually its seems that on win2k server the directory structure is different ...unlinke winxp where we get http://servername/website  in win2k its http://servername/page.aspx   the website name is not there....anyways let me implement n see..how it goes and then will get back to u
ty
0
 
aspnetdevAuthor Commented:
im checking for Request.ApplicationPath since win2k's apppath is always null "it seems" and other server does have the Request.ApplicationPath....hope it works
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 6
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now