Getting the actual URL, with domain and not host name from my ASP.NET 2.0 application

Getting the actual URL, with domain and not host name from my ASP.NET 2.0 application.

I am trying to open in IE a file (MS Word Doc) that I just uploaded through my web application on an IIS server running ASP.NET 2.0.  I am able to get a URL from the Request.Url object and this works when I am debugging locally.  However, when the application gets published to an application web server the Request.Url.AbsoluteUri returns the host name in the Url which is not accessible to a remote/browsing computer.

For example, this works on my local:
http://localhost/MyApplication/UploadedFiles/File1.doc 

This does not work when the application runs from the server:
http://serverhostname/MyApplication/UploadedFiles/File1.doc

I am able to navigate with my browser to the file and open it on the web server with a URL like:
http://www.mycompany.com/MyApplication/UploadedFiles/File1.doc 

This may be an ignorant question, but I guess that's me right now, Should I be asking for "how to get the domain?" ?
LVL 1
BruceAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

mrichmonCommented:
You need to look at the server variables:

Request.ServerVariables["SERVER_NAME"]
Request.ServerVariables["URL"]
etc...
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
BruceAuthor Commented:
mrichmon,

Thanks, but those return the same values I am already getting from Request objects other member variables.  

We finally broke down and stored the domain names in the web.config's appSettings.  We then use a Select Case on System.Environment.MachineName.ToLower().  

Select Case System.Environment.MachineName.ToLower()
    Case "dev_server"
      'Get Dev URL from web.config
      _ApplicationServerURL = ConfigurationManager.AppSettings("ServerURL_Dev")
    Case "test1_server", "test2_server", "test3_server"
      'Get Test URL from web.config
      _ApplicationServerURL = ConfigurationManager.AppSettings("ServerURL_Test")
    Case "prod1_server", "prod2_server"
      'Get Production URL from web.config
      _ApplicationServerURL = ConfigurationManager.AppSettings("ServerURL_Production")
    Case Else
      'Get Localhost URL from web.config
      _ApplicationServerURL = "http://localhost/"
End Select

<appSettings>
<add key="ServerURL_Dev" value="http://dev.dev_server.com/"/>
<add key="ServerURL_Test" value="http://test.testdomain.com"/>
<add key="ServerURL_Production" value="http://www.proddomain.com"/>            
</appSettings>

I do appreciate the effort mrichmon!  Thank you.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
.NET Programming

From novice to tech pro — start learning today.