I'm setting up an IIS site, and want to support many different Sub-ENVs in one site. What should I do about IIS structure? An application within a normal folder or using sub application?
Directory Structure:
D:\MySite
|_qa1
|_app
|_qa2
|_app
One method:
MySite
|_qa1(normal folder)
|_app(application)
|_qa2(normal folder)
|_app(application)
Another method:
MySite
|_qa1(application)
|_app(application)
|_qa2(application)
|_app(application)
App pool
MySite: MySite
qa1: MySite_qa1
app in qa1: MySite_qa1_app
qa2: MySite_qa2
app in qa2: MySite_qa2_app
I read the doc Virtual Directory. But it is said that you might use a virtual directory when you want your application to include images from another location in the file system, but you do not want to move the image files into the physical directory that is mapped to the application's root virtual directory. It is different from normal folder.
So what's the better choice? And could you describe the advantage or disadvantage?
What's the difference between normal folder and application in IIS?
In my opinion, the main difference between the normal folder and application in IIS is the application will have its own application pool, but the folder don't.
The folder will inheit from its parent IIS's websites application pool.
I'm setting up an IIS site, and want to support many different Sub-ENVs in one site.
In my opinion, choosing which method is according to your actual requirement.
If qa1 or qa2 is just a folder which contains different apps, I suggest you could set its as a folder not a application, since become a application will have its own application pool, which will take system resource to run it.
If qa1 or qa2 is just a folder which contains its own application file, I suggest you could set its as a application, since it could be managed by different application pool.
I'm creating multiple small ASP.Net Web forms applications i want on my host each project of those to run in different subfolders for the root directory of my host. When i puplish each project to different subfolders of the root directory all of them dont work. The only one that works is the one at the root directory. I think this issue is related to Web.Config. I want to ask is there a way to run each application of those in different subfolder without creating other websites ??
IIS
I have been doing this a lot for testing purpose before final deploy. I just host the new application in the virtual directory of the the existing website that we own.
for eg:- www.example.com is our site
and we have a application named xyz then url for new application will be : www.example.com/xyz
You have to add a virtual directory in the root of the IIS website and turn it into an application by right-clicking on it in the IIS management console.
Or simply you can put the website in your root website (as in your case) and then in the IIS management console convert that folder to application.
Create and Configure Virtual Directories
Setting Virtual Directories as Applications in IIS
I have several asp.net web services is running in IIS. Now I want to move to another server in all exactly same IIS setting and using same web services. I know about copying a IIS config files(ApplicationHost & administration) to new server remotely but do I also need to copy all asp.net files to new server as well? If yes then must the asp.net files be in the same file path directory as the current one(D:\Website) for IIS in new server to be able to recognize it?
Yes, you would need to copy the ASP.NET files as well.
It is not necessary to put them in the same file path directory. Whatever directory you put them in, ensure your IIS Website Settings point to that directory and you have setup the same set of permissions etc. on it.
e.g. You could have had a website on c:\site on one web server. you could move the website files onto another web server and put them on d:\newsite\ and change the Website Directory Path in IIS Manager to point to D:\newsite\ directory.
I have created an asp.net C# application developed in visual studio 2010, which is running without any error on my PC, but when i tried to run the same application on another computer with visual studio 2010, it gives following error,
The element 'buildProviders' cannot be defined below the application level.
Following article at http://forums.iis.net/t/1160248.aspx?The+element+buildProviders+cannot+be+defined+below+the+application+level+
You probably need to convert the virtual directory to application. I encountered this when deploying my app (using NancyFX).
You can open IIS Manager->Right-click the diretory of your web application->Click Convert to Application.
I faced this problem and i found out that somehow i had another version of my website within the subfolders of my webstie.
Meaning that my website is in a folder called "FrontEnd". Withing this folder there is a subforlder called backup that contains a backup of my website.
when i removed the backup folder, everything went ok.
If you recently upgraded your solution, check for the backup directory for crystal report within your solution. The backup directory can get created when you upgrade visual studio. To resolve this error, closed the solution. Went to the solution directory
and delete or move the backup directory to a different location outside of the solution directory. This solved the problem for me
You can fix this problem either defining the element in the web.config file of the root dir or setting Virtual Directory as APPLICATION in IIS.
For doing this with IIS 6.0, you first have to set the the directory in which your site is present as a Virtual Directory and then define this virtual directory as an Application.
All physical directories under Inetpub\Wwwroot are not considered applications until the following procedure is used:
Open IIS Manager.
Expand the Default Web Site node and look for the subdirectory that you want to designate as an application root.
Right-click the directory that you want to mark as an application root, and then click Properties.
On the Directory tab, in the Application Settings section, click Create.
In the Application name text box, type the name of the application, and then click OK.
The virtual directory is now an application root.
Maybe on oppening website you were selected upper project directory as website root
In my case, the issue was that the web.config inadvertently existed in a subfolder of the applications root folder. I had a "temp" subfolder, and I had placed a copy of the web.config there, unaware of the unintended side effects. The solution in my case was to remove the dup copy in the subfolder. Hth
(In my case name of project was repeating in directory )
The problem's solution is very simple: check its root directory in Solution Explorer. If there is a name folder within another name folder then this error will occur. Your web site contents should be very first after your web site name folder. In other words, contents should not display in another same name folder.
I'm wondering how to host multiple websites under same folder. example:
www.mydomain.com/apps/app1
www.mydomain.com/apps/app2
www.mydomain.com/apps/app3
each of them is different app with separated web.config
my concern now is that my apps now cannot read dll files inside their own bin folder.
Is there any solution for that?
Thanks
You can do this within IIS. Just start up the IIS Manager and navigate to the folder (such as 'app3' in the Connections pane on the left). Right-click the folder and select Convert to Application. This will set the folder as the root for a separate ASP.NET web application.