What is the difference between a shared folder and a virtual folder? - iis

I am working with my friends on a web application hosted with IIS (Internet Information Service). I noticed that there're some so-called virtual folders in the IIS website tree view, and still some shared folders are used in our web application.
The virtual folders are like this:
http://myserver/folder1
The shared folders are like this:
\\myserver\folder2
So, what's the difference between them?
Many thanks.
Add - 1 -
And what's the difference between a web application and a virtual folder? I often right click on a virtual folder and turn it into a web application. But I just don't know what this action actually means?! Could anyone show me some material addressing in detail how a web application in IIS is invoked? I hope it could fit in the following chain.
a HTTP text request (GET, PUT, etc) arrives at IIS -> What happens here? -> a HTTP text response leave the IIS

Virtual folders are folders relatively to an URL path. It means that, as http://myserver is the root folder, you can map a physical folder on your disk drive into a folder that is virtually child of myserver wherever http://myserver is mapped to.
Shared folders are relative to the SMB protocol. The difference between HTTP and SMB is that with HTTP you can host a web application (ie. run code and generate HTML output) but with SMB you can only share files statically, ie. you can share executable files but they must be first downloaded and then executed.

Related

Possible to use Virtual Path to an external disk on Plesk Managed Windows server?

After getting a helpful answer from this post I want to store media on a separate harddrive on the windows server. Is it possible to make those files available via http?
I soon discovered that Plesk does not allow me to create a virtual path that points to a location outside of my website root. I want the virtual path to point to a folder on D: (an extra disk, not the same as the website root directory)
Only two possible solutions I could think of, although I can't find them any where.
1) Maybe plesk has an advanced configuration file that prevents it from overwriting certain things in IIS when it runs its maintenance jobs or updates, specifically the Virtual Path I created directly in IIS outside of plesk.
2) Maybe there is a third party component available that offers this functionality, setting virtual paths outside of web root or the config file I just mentioned in #1.
Any other solutions are also welcome.
cd "%plesk_vhosts%\"domain.tld\httpdocs
mklink /J point c:\outOfSpace
Now provide permissions to "psacln" group to c:\outOfSpace and that's it.
Also you can create "point" not in httpdocs but in web space root and than from Plesk create Virtual Folder inside /httpdocs with needed access permissions.
There is issue that your custom permissions may lost after Plesk upgrade, this KB article describe how your can avoid it kb.sp.parallels.com/111194

Need to point to files outside the www root

My problem is as follows, I am running a website on a window server. The websites are located in the following directory. 'c:/inetpub/wwwroot/'.
The c drive has become very full recently as one of the websites allows the user to upload files to this location 'c:/inetpub/wwwroot/mywebsite/recordings/'.
I would like to move this recordings folder the e drive on the server which has lots of space 'e:/mywebsite_data/recordings/'
I created this folder and have moved the files to there new location on the e drive.
My problem is I cannot create a hyper link to the files on this new location. I have tried this href below but obviously this is looking for a file on my own workstation.
Recording
Any suggestions?
Thanks
You can solve your problem by creating a virtual directory
Creating Virtual Directories in IIS 6.0
Here is an article on how to do this in IIS7
Understanding Sites, Applications, and Virtual Directories on IIS 7
You can use IIS' virtual directories: https://web.archive.org/web/20110318232846/http://support.microsoft.com/kb/172138
With them you can place external folders in your website (it's like an include).
Update:
Another tutorial: http://msdn.microsoft.com/en-us/library/zwk103ab.aspx

How to setup IIS 7 using physical path directing to DropBox?

I'm using multiple computers for development and I want to be able to store my files in my dropbox folder. I went to change the physical path in IIS from c:\inetpup\wwwroot to the dropbox folder but I get this error:
The requested page cannot be accessed
because the related configuration data
for the page is invalid.
I couldn't find the config file so I was wondering if anyone had done this before or whether there a better way to sync everything nicely across several PCs?
I tried it (IIS 7.5, Win 7) and it should work just fine to let your physical path of your web look at your dropfox folder. I would guess your web.config file generally contains malformed XML (see KB942055).
I'd suggest, try to map it to an empty folder just with an index.html file and see if this error still occurs.
As a workaround, I guess you can put Dropbox in your wwwroot folder and set up a virtual directory that points to Dropbox. However, there are some security issues that may hinder you from doing so. I come across a nice tutorial on how to set up Dropbox to IIS as FTP Publishing. Hope it helps.
Hodgin's guide on using Dropbox as FTP publishing.

Access file in weblogic server

Is there a folder in the Domain Directory of Weblogic, where files put inside can be accessed directly from web browser? In other word, I don't have to pack the file in an ear, war file and deploy it to make it accessible?
Thank you very much
Regards
K.
The Virtual Directory Mapping feature (that you declare in the weblogic.xml) would do the trick:
Using the virtual directory mapping
feature, you can create one directory
to serve static files such as images
for multiple Web Applications. For
example, you would create a mapping
similar to the folowing:
<virtual-directory-mapping>
<local-path>c:/usr/gifs</local-path>
<url-pattern>/images/*</url-pattern>
</virtual-directory-mapping>
A request to
http://localhost:7001/mywebapp/images/test.gif
will cause your WebLogic Server
implementation to look for the
requested image at:
c:/usr/gifs/images/*.
This directory must be located in the
relative uri, such as
"/images/test.gif".

How to host multiple webapps using only 2 Virtual Directories

my shared hosting only allows me to create 2 virtual directories. and i want to host multiple webapps... say an asp.net mvc blog, a forum, a personal site etc...
isnt there any other way of doing this? cant i simply just ftp the blog folder to one of my virtual directories and then access it online??
For ASP.NET web applications, typically each would live in its own virtual directory which serves as the application starting point.
Technically you could "piggy-back" two applications on the same application starting point in one of two ways:
Put all the files for each application in the same directory (and appropriate sub directories)
If you don't have ANY files that overlap, you can get away with this. Of course, it's likely that you won't with such files as the default or index pages, etc. And this would be pretty messy anyway.
Put all the non-binary files for each app in an appropriate subdirectory and the binaries in the main virtual's \bin directory.
You'll be able to do this only if each application's binary files don't overlap by name AND there are no namespace ambiguity conflicts between assemblies (two different assemblies by file name, but with the same namespace). The latter is much less likely to happen if you are trying to piggy-back two different applications.
The big problem I see with the latter solution is that any parts of the application that make use of application root references will break. When some code tries to resolve a reference to some resource (like an image) based on an application root reference such as
~/images/logo.gif
the ~ will get resolved to the virtual directory, but will not include the additional (non-virtual and non-app starting point) subdirectory in which the application lives. So instead of this:
/vd1/app1/images/logo.gif
you'll end up with this:
/vd1/images/logo.gif
Obviously, that won't work.
So... you won't break either app if you can put them both in the same virtual directory, however, you'll have to check for file conflicts and such. Possible namespace conflicts will be unavoidable without separate application starting points.
Can't you just put each app in a separate subdirectory in either of the virtual directories. e.g. if you had http://server.com/vd1, you could partition it like http://server.com/vd1/app1, http://server.com/vd1/app2, etc.

Resources