How to set startup page for a specific folder? - asp.net

How to set startup page for a specific folder?

First you have to add web.config file in folder and in your web.config add this rule
<defaultDocument enabled="true">
<files>
<clear/>
<add value="index.aspx"/>
</files>
</defaultDocument>
<modules runAllManagedModulesForAllRequests="true"/>

ok i found solution.
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear/>
<add value="Pages/Default.aspx"/>
</files>
</defaultDocument>
<modules runAllManagedModulesForAllRequests="true"/>

Just name it default.aspx and that's it.
UPDATE:
May be you check if default.aspx in defined in IIS as default document or not.
Check links below. It'll guide you to check if settings of IIS are OK or not.
http://www.iis.net/learn/web-hosting/web-server-for-shared-hosting/default-documents
http://www.iis.net/configreference/system.webserver/defaultdocument
Setting Default WebPage in IIS 7.5
Hope it helps

Related

How to redirect to a specific page without using the full URL

I got a website published to server under 192.168.2.3.
I want access to the login page without including the full URL, I want it to be done by just entering URL 192.168.2.3, then after processing it become 192.168.2.3/login.aspx.
The problem I currently encounter is that it always goes to default.aspx.
I had tried to add some code at web.config and it just came out as the error shown below.
<configuration>
<appSettings />
<connectionStrings>
<add name="CompWebConnectionString" connectionString="Data Source=TDSPWEBSVR\SQLSERVER2008;Initial Catalog=CompWeb;User ID=sa;Password=tdspp#ssw0rd" providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<defaultDocument>
<files>
<clear />
<add value="TechnicianProgram/login.aspx" />
</files>
</defaultDocument>
On your site in IIS one feature is Default Document. Check what has been set there. You may want to remove everything but the required login page path which will enable IIS to return the login page if the request URL does not specify a specific path.
This setting will update your web.config file with the values something like below-
<location path="folder1">
<system.webServer>
<defaultDocument enabled="true">
<files>
<add value="login.aspx"/>
</files>
</defaultDocument>
</system.webServer>
</location>

URL not redirecting to default page

I have a website developed in ASP.NET. I have it hosted in IIS and say the url is www.web.com. Whenever I request for this page by typing the URL in the browser I am redirected to the login page with URL like this www.web.com/Login.aspx?ReturnUrl=%2f.
I have added the following in web.config so as to make Default.aspx as my Default page.
<defaultDocument>
<files>
<clear/>
<add value="Default.aspx"/>
</files>
</defaultDocument>
Also,
<forms loginUrl="Login.aspx" defaultUrl="~/Default.aspx">
The pages are present on root folder, so I tried few things already mentioned here. Is there anything else I am missing ? A direction towards a solution or any links would be helpful.
Edit: The website redirects to Default.aspx when run on localhost
A couple of minor differences, but may help. I also assume you are using IIS 7 or higher.
If they are at the same folder level, you can try:
<forms loginUrl="Logon.aspx" defaultUrl="Default.aspx"/>
You can try:
<defaultDocument enabled="true">
<files>
<clear/>
<add value="Default.aspx"/>
</files>
</defaultDocument>

Set Default Start Document

This seems pretty simple, but for the life of me I can't figure it out.
Using ASP.NET Classic (ie non-MVC), say I have a website www.foo.com that has an /api folder, and in that folder is the file api.aspx (i.e. you hit www.foo.com/api/api.aspx)
How can I set things up (either via Web.config rewrite or via MapPageRoute() in Global.asax.cs) so that www.foo.com/api
hits /api/api.aspx not /api/Default.aspx
doesn't show api.aspx in the browser's URL box (I just want to see either www.foo.com/api or www.foo.com/api/)
I would have thought that this would work:
routes.MapPageRoute("ApiRoute","api","~/Api/Api.aspx");
but it doesn't... I still hit /api/Default.aspx
EDIT:
I also want to support /abc/abc.aspx and /thing/thing.aspx, mostly so when I have these pages open in the IDE they're not all named "Default.aspx" and I can't quickly see which page is which.
I've created a small demo project. Each folder I want to set a specific default document I add a web.config file.
project structure
Each web.config file defines a default file for it's folder.
web.config in folderA
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear/>
<add value="a.aspx"/>
</files>
</defaultDocument>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Accordingly for folderB
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<defaultDocument enabled="true">
<files>
<clear/>
<add value="b.aspx"/>
</files>
</defaultDocument>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
ATTENTION
When I did some tests in my development webServer it did not work. But
when I published my project to my local IIS instance it did work out
all right.
local IIS deployment

Problem when default page is MainPage.aspx not Default.aspx

I have very strange problem. I'm using IIS 7.0 Integrated mode for my application. (pool is ASP 2.0 integrated)
It's working fine when i type www.xyz.com/MainPage.aspx. But when i used simple www.xyz.com then its not working.
I always get this error
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /intranet/default.aspx
I have mapped default document to MainPage.aspx still its not working... I don't have default.aspx page in root. only Mainpage.aspx and I can't change it...
my web.config looks like this (only part of it :):
<configuration>
<system.webServer>
<defaultDocument>
<files>
<clear />
<add value="MainPage.aspx" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
Check you web.config and make sure the default.aspx is not listed as one the default pages. Recycle the app pool and restart IIS.
<system.webServer>
<defaultDocument>
<files>
<remove value="Default.htm"/>
<remove value="Default.asp"/>
<remove value="index.htm"/>
<remove value="index.html"/>
<remove value="default.aspx"/>
<remove value="iisstart.htm"/>
<add value="MainPage.aspx"/>
</files>
</defaultDocument>
You need to add MainPage.aspx as default page through IIS's document facility. You may also add a default document with IIS7 web.config.
<configuration>
<system.webServer>
<defaultDocument>
<files>
<add value="MainPage.aspx" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
I think this setting is locked in IIS7 on applicationHost.config level. You have to change the root config gile or use IIS Administration API do complete this task.

ASP.NET url routing, default path

I expected this would also map the default homepage as in http://localhost/ but it is not hit.
RouteTable.Routes.Add(new Route("{Keyword}", new HomeHandler()));
Question is of course why not? I would like to map the root to some other page.
I haven't tried this yet but try removing the default document from IIS's configuration. For IIS 7 this setting is in web.config:
<configuration>
<system.webServer>
<defaultDocument>
<files>
<clear />
</files>
</defaultDocument>
</system.webServer>
</configuration>
The answer is somewhat complex. It was on IIS6 and we had to add a specific property. I cannot really remember what we did back then but you can google it, that's how I found it.

Resources