随笔 - 322  文章 - 2  评论 - 6157 

今天大水很猛,两大巨头又重现江湖,首页瞬时风生水起,在这临行出差之际,草草来篇,沉淀在潮水之下。

 

前言:如果觉得本文对你有帮助,就热情点下推荐

 

一:用VS的IDE自带的IIS开发

概说:在VS2005中,我们很多时候开发,都是采用IDE自带的IIS开发,通常有两种开发方式。

1:WebSite:

如果建的是早期的webSite 网站,我们运行后总是会多一层目录的地址,如图

 

 

2:WebApplication:

如果vs2005打了sp1补丁或在vs2008/vs2010中,新建的可以是webApplication,运行后是没有多出一层目录的,如图

 

 

问题:

如果建的是WebSite,由于多出一层目录结构,所以在开发中极为不便的,问题多多~!

 

这里用一个小小示例说明问题:

我们同样为上面的方式加上一个A链接:

//WebSite html
方式:
<href="/Default.aspx">WebSite 网站</a>

//WebApplication html
方式:
<href="/Default.aspx">Application应用程序</a>

说明: 

按常理,我们都知道,“/”代表根目录,编写这样的html应该是没啥问题的,可是,这种情况在WebSite方式下出现错误了

 

我们点击链接,出错如下图:

 

问题怎么解决?

如果你故意要在代码中处理这种根目录的问题,那处理起来是相当的麻烦的。
然而WebApplication下则是正常的,所以,现在一般开发都建WebApplication项目。
那我们今天怎么解决WebSite这种多出来的目录问题?那就是使用系统的IIS进行开发了。

 

二:使用系统的IIS开发

要进行系统IIS开发,我们需要进行以下的设置

1:设置自定义服务器为自己的局域网IP地址,设为127.0.0.1也行

对于WebSite的项目属性

 

 

WebApplication的项目属性

 

 

说明:在IIS定位到相应开发目录之后,记得点一下“创建虚拟目录”成功之后才能使用。

 

 

2:相应的IIS网站目录需要定位到开发目录

定位目录到开发网站的目录

 

 

 

设置成IP访问形式

 

 

设置的成果

设置完成后,我们再浏览原来的WebSite或WebApplication站点时,就是IP地址访问的形式了
这时候你再用之前的点击链接,就不会出现错误了,而且也没有多出一层目录出来了,如图

 

 

结段结言:

至此,通过使用系统IIS进行开发,就可以避免了多出一层目录出来的情况,同时我们也换成了IP开发。
那在实现项目中,很多时候,我们开发都可能要根网站域名挂勾,而网站域名当然很多时候跟Cookie有关了
于是,接下来一步就是重点,使用域名欺骗进行开发。

 

 

三:域名欺骗开发

1:域名欺骗设置

我们打开以下路径:C:\WINDOWS\system32\drivers\etc,可以看到一个host文件,如图

 

用记事本打开,输出一行:127.0.0.1 www.abc.com/
这里意思是:如果在浏览器输入www.abc.com/将自定转向本机网站,设置如图

 

 

2:项目属性设置

将项目属性的IP改成域名

 

WebSite网站属性,如图

 

 

 

效果浏览:看,可以域名的方式欺骗访问了,如图

 

 

 

WebApplication应用程序属性设置

 

对于这个设置,如果直接点创建虚拟目录,可能问题多会一点,比如如下图:

 

 

说明:这种属性是由于host指向了127.0.0.1,则IIS使用192.168.3.48方式引起的,只要改成同一种即可

 

下面是正常创建虚拟目录:我里我添加了另一个域名指向

192.168.3.48 http://www.cyq.com/

 

为了F5能够运行,而不止于右键游览方式,需要进行以下设置

A:IIS主机头设置

 

B:创建虚拟目录

 

接着F5运行

 

配置这个需要注意下以下问题

1:host文件域名指向的IP
2:IIS网站属性设置使用的IP
3:IIS网站的主机头需要添加域名

如果出现调试运行错误:无法在 Web 服务器上启动调试。与 Web 服务器通信时出现身份验证错误。

无法解决时,按以下方法解决:

禁用环回检查
1. 打开注册表编辑器, 找到项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
2. 右击 Lsa ,新建 ,DWORD 值项:DisableLoopbackCheck,并改值为1

 

 

结语:

通过这种域名方式开发,可以模仿和发布网站后一模一样的开发方式,也不用担心路径和域名最后的问题。
对于很多个子域名的,方式一样,只是host文件的指身改成如:
192.168.3.48 a.cyq.com

 

 

 

 

版权声明:本文原创发表于 博客园,作者为 路过秋天,博客 http://cyq1162.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。
posted on 2010-09-09 17:30 路过秋天 阅读(3224) 评论(51) 编辑 收藏

 回复 引用 查看   
#1楼 2010-09-09 17:33 | 熊猫发光      
上次在群里问这个,现在出文章了!坐下沙发!
 回复 引用 查看   
#2楼 2010-09-09 17:36 | 斯克迪亚      
一路顺风顺水
 回复 引用 查看   
#3楼 2010-09-09 17:36 | CallHot      
支持,不错的文章
 回复 引用   
#4楼 2010-09-09 17:39 | lodst[未注册用户]
多此一举
 回复 引用 查看   
#5楼 2010-09-09 17:43 | dotNetDR_      
学习了~~呵呵以前就一直在看[多网站高级配置]里面的[主机头名]原来就是一个域名~~
 回复 引用 查看   
#6楼 2010-09-09 17:50 | subwayline13      
太基础了吧
 回复 引用 查看   
#7楼 2010-09-09 17:52 | 宏宇      
大部分人不知道的小技巧,支持发文共享
 回复 引用 查看   
#8楼 2010-09-09 18:01 | 喵 喵      
弄得这么复杂!
项目里面左键单击webSite-->点击下面属性选项卡-->虚拟路径-->把你的网站webSite的名称换成"/"就可以了!

 回复 引用 查看   
#9楼 2010-09-09 18:04 | 钧梓昊逑      
内容很一般,截图很辛苦
 回复 引用 查看   
#10楼 2010-09-09 18:21 | New.min      
在创建的时候改虚拟目录为根目录 / 就没有这些问题了
 回复 引用 查看   
#11楼 2010-09-09 18:47 | joylee      
网站开发基础知识吧。
 回复 引用 查看   
#12楼 2010-09-09 19:01 | Julin Rain      
觉得像是标题党,所以点了反对.
btw,在vs2008下建website同样也是可以多一层虚拟目录,这些都可以在sln文件中配置的,不知楼主是否试过才来说的.另外,建议最好不要基于根目录'/'开发,否则如果需要把项目移到某个项目的子项目中的话,会后悔莫及.

 回复 引用 查看   
#13楼 2010-09-09 19:17 | builderman      
汗,本来一个很简单的问题被你这么一写就变成高深了。还是想想怎么在程序中解决根本问题吧,如果把程序部署到子目录的化你就挂了
 回复 引用 查看   
#14楼 2010-09-09 21:10 | imzzk      
热情的推荐一下。
 回复 引用 查看   
#15楼 2010-09-09 21:44 | IT鸟      
不错 iis开发值得推荐,修改host 不太好.怕混淆了,自己错了还骂客户~_~
 回复 引用   
#16楼 2010-09-09 22:58 | out了[未注册用户]
不错 好好好
 回复 引用 查看   
#17楼 2010-09-09 23:00 | czjone      
就是一个HOST的修改,我们一直都是这样开发的哈~
 回复 引用 查看   
#18楼 2010-09-09 23:53 | bdnet      
8错,早就开始使用了,呵呵
 回复 引用 查看   
#19楼 2010-09-10 03:56 | leisang      
这个标题有点危言耸听了,我还以为什么,这些开发网站的都是常识把。另外所谓的“域名欺骗”根本没必要,直接用ip没什么不好的,而且如果你的网站上线了,你要对照着调试是不是还得不停改Host文件?

 回复 引用 查看   
#20楼 2010-09-10 08:37 | XinXin_Shine      
顶一下。。。
 回复 引用 查看   
#21楼 2010-09-10 08:58 | tubo      
关于根目录好像可以用"~/"
 回复 引用   
#22楼 2010-09-10 09:24 | winlmh
....这个 MS不用写如此详细的文章吧
 回复 引用 查看   
#23楼 2010-09-10 09:32 | liaoyun      
典型的标题党,不过我这样子做开发已经很长时间了。。
 回复 引用   
#24楼 2010-09-10 09:39 | dfgasdfasdf[未注册用户]
就是改个host文件。整这个标题。标题党。还发这么多图。
 回复 引用   
#25楼 2010-09-10 09:59 | gilrmy love[未注册用户]
这是很基础的东西 还整个了这么个标题.
 回复 引用 查看   
#26楼 2010-09-10 10:18 | 深海沉      
这。。。。真的是欺骗式

有点太。。。。

 回复 引用 查看   
#27楼 2010-09-10 10:21 | 鹅毛山人      
支持下~~
 回复 引用 查看   
#28楼 2010-09-10 13:40 | Rioyang      
小题大作之嫌啊
 回复 引用 查看   
#29楼[楼主] 2010-09-10 14:46 | 路过秋天      
手机上博发说下:此文只是个小知识点,你之前不懂,那看过也就懂了,如果你已懂,你又何必纠结的反对?你懂的难道还不能让别人懂?像这种知识点,大伙可自问下?是从人家那口授得知的?还是从知识文章得知的?还是神般的自我领悟?!
 回复 引用 查看   
#30楼 2010-09-10 17:43 | Leo Lee      
在首页出现就有些水了,博客园管理员该检讨~
 回复 引用 查看   
#31楼[楼主] 2010-09-10 18:09 | 路过秋天      
大伙咋这篇技术文章这么敏感,对广告文章却一个劲的激动,是不是该反思点什么了。

 回复 引用 查看   
#32楼[楼主] 2010-09-10 18:12 | 路过秋天      
@tubo
@New.min
@喵 喵
你们大概没用过vs2005吧。

 回复 引用 查看   
#33楼[楼主] 2010-09-10 18:16 | 路过秋天      
@Rioyang
@gilrmy love
@winlmh
@subwayline13
@lodst
基础怎么了?你又懂多少基础的东西?基础的东西很多,首页那些文章对很多人来说也是基础,难道说都不该发?

 回复 引用 查看   
#34楼[楼主] 2010-09-10 18:18 | 路过秋天      
@Rioyang
@深海沉
@gilrmy love
@dfgasdfasdf
@liaoyun
@Julin Rain
写篇文章详细点就叫小题大作?
名称起的和内容难道不相关?怎么叫标题党了。
也许内容你们早懂,也不能这么大喊大叫的吧。

 回复 引用 查看   
#35楼[楼主] 2010-09-10 18:20 | 路过秋天      
@Leo Lee
一篇技术文章放首页咋了,就算再基础的东西,只要写的清晰详细,符合首页规则,对部分人群有帮助,又有何不可放的。
首页广告大战时又不见你出来说点什么。

 回复 引用 查看   
#36楼[楼主] 2010-09-10 18:23 | 路过秋天      
@XinXin_Shine
@bdnet
@out了
@out了
@imzzk
@dotNetDR_
@宏宇
@CallHot
@斯克迪亚
@熊猫发光
:) smile,发现还是你们有够青春热情,谢谢支持~~

 回复 引用 查看   
#37楼 2010-09-10 18:45 | 李宏      
文不对题………………有点标题党之嫌……
 回复 引用 查看   
#38楼[楼主] 2010-09-10 18:52 | 路过秋天      
@李宏
内容里有域名欺骗设置,内容又和开发相关,咋又成标题党了???

 回复 引用 查看   
#39楼[楼主] 2010-09-10 18:53 | 路过秋天      
说我标题党的同志们啊,请问下这样的标题,你们觉得应该写出怎样的文章出来呢?
 回复 引用 查看   
#40楼 2010-09-10 20:59 | Rioyang      
楼主不要鸡冻嘛,鼓励你一下
 回复 引用 查看   
#41楼 2010-09-10 23:21 | 李宏      
@路过秋天
这个好像不叫域名欺骗
我以为是直接搞入dns服务器,或是别的什么方案,别人在internet上访问某个网址直接转到自己的服务器来……
看了半天原来是改hosts,让人大失所望
这个只能算是windows基础知识
叫做“使用hosts文件使特定域名指向本地服务器”似乎更好一点
避免让人产生误会

 回复 引用 查看   
#42楼 2010-09-10 23:23 | 李宏      
大伙鸡动的原因应该就是因为这个标题,而进入了。结果也是大失所望,所以楼主就被杯具了……
 回复 引用 查看   
#43楼[楼主] 2010-09-11 09:24 | 路过秋天      
@李宏
就让大伙激动下好了,反正大伙平日也很少激动的。

 回复 引用 查看   
#44楼 2010-09-13 10:42 | taocaibang      
我觉得发带图的挺辛苦的。淘才帮 来支持了。
 回复 引用 查看   
#45楼 2010-09-13 10:58 | 喵 喵      
vs2005?
my god...

 回复 引用 查看   
#46楼[楼主] 2010-09-13 21:00 | 路过秋天      
@taocaibang
有截图的文章的确要费很多时间。

 回复 引用 查看   
#47楼[楼主] 2010-09-13 21:02 | 路过秋天      
引用喵 喵:
vs2005?
my god...

对的,上面很多人说“改虚拟目录为根目录 / 就没有这些问题了
”。有两种情况,一是文章都没看清楚,二是根本没用过vs2005的website方式。

 回复 引用 查看   
#48楼 2010-09-14 11:26 | 耀哥      
也可以利用Ihttphardler实现类似效果,而且不存在移植问题:
在config中<add verb="*" path="*.lgy" type =".MyHardler"/>
<!--verb可以get或post,*表示对所有;path表示对相对文件的路径处理;前面指httphardler实现的类名,后面指dll文件名-->
然后在MyHardler.cs
public void ProcessRequest(HttpContext ctx)
{
HttpResponse Response = ctx.Response;
HttpRequest Request = ctx.Request;

//获取用户请求文件
string filePath = Request.FilePath;
if (filePath.EndsWith("lgy"))
{
Response.Write("<html><body>你请求的页面是我自定义的页面
<a href='http://www.baidu.com'>百度</a></body></Html>");
}
}
利用的是任何信息的提交都要经过IHttpHandler这一特性,这方法也是我以前积累的。
我觉得楼主的大部分文章质量都不错,有兴趣的可以学习一下。不感兴趣的人也不要喷。

 回复 引用 查看   
#49楼 2010-10-12 14:46 | 飞笑      
标题把我唬了,哈哈!
 回复 引用 查看   
#50楼[楼主] 2010-10-12 15:01 | 路过秋天      
引用飞笑:标题把我唬了,哈哈!

要起个能唬人的标题也不简单的呢~哈哈~

 回复 引用 查看   
#51楼 2010-10-15 13:27 | 不能飚车      
标题确实唬人,进来一看,原来如彼~~~

首先,不建议用绝对根路径,当然如果实在要用,那当我没说。

其次,域名问题,改host很不方便,自己本机建个域名服务器,简单得多,还有助于理解什么是DNS。自己在开发环境里装个BIND,免费又轻量,方便得很。

发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 1822437 lO6FzLlD+S0=