IIS6 和 apache iis 80端口不同端口 同一IP该如何设置?

20476人阅读
配置Apache服务器并且设置DNS
&&&& 我们通常所说的虚拟主机技术就是将一台(或者一组)服务器的资源(系统资源、网络带宽、存储空间等)按照一定的比例分割成若干台相对独立的“小主机”的技术。每一台这样的“小主机”在功能上都可以实现WWW、FTP、Mail等基本的Internet服务,就像使用独立的主机一样。
&&& 目前网站服务器的虚拟主机平台使用以开放的Apache为最多,其次是微软的Windows IIS。Apache具有跨平台(FreeBSD/Linux/Windows/Solaris/Other UNIX)、易于维护与最佳安全性等优点。
&&& Apache是率先支持基于IP虚拟主机的服务器之一。 Apache 1.1及其更新版本同时支持基于IP和基于主机名的虚拟主机,不同的虚拟主机有时会被称为基于主机(host-based) 或非IP虚拟主机(non-IP virtual hosts)。
&&& 用Apache设置虚拟主机服务通常可以采用两种方案:基于IP地址的虚拟主机和基于主机名字的虚拟主机,下面我们分别介绍一下它们的实现方法以及优缺点。以便大家在具体的应用中能够选择最合适的实现方法。
&& 一、Apache实现基于IP地址的虚拟主机(每个站点拥有一个独立IP地址)
&&& 使用这种虚拟主机方式,首先要在服务器上为每个虚拟主机单独设置一个IP地址。这些IP地址可以通过增加多个网卡或者在一个网卡上设立多个IP地址来完成。有了多个IP地址后,可以采用以下两种方式之一来设置Apache。
1、为每个虚拟主机运行一份Apache
&&& 采用这种方式,每一份Apache程序可以以单独的用户运行,因此各个虚拟主机之间互不影响。设置这种虚拟主机时,只要为每一份Apache设置一套配置文件就可以了,唯一需要注意的是:必须使用“Listen”语句,强制每一份Apache 仅仅在属于“自己”的IP地址上接收服务请求。
&&& 优点:各个虚拟主机之间互不干扰,安全性高。
&&& 缺点:占用系统资源较多。
2、多个虚拟主机共享同一份Apache
&&& 采用这种方式,各个虚拟主机共享同一份Apache,因此各个虚拟主机之间有一定的影响,尤其是执行CGI程序时,可能会带来一些严重的安全问题。设置这种虚拟主机时,只要为每一个虚拟主机设置类似如下的信息即可:
&&& &VirtualHost &
&&& DocumentRoot /www/ghq1
&&& &/VirrualHost&
&&& 优点:占用系统资源比上一种方式少。
&&& 缺点:安全性低,每个虚拟主机仍然需要占用一个IP地址。
&&& 例如服务器一个网卡上绑定有两个IP地址(172.16.3.40和 172.16.3.50)分别对应域名 和www.ghq2.org的服务,配置如下:
&&& 服务器配置(apache的配置文件httpd.conf)
&&& Listen 80
&&& &VirtualHost 172.16.3.40&
&&& DocumentRoot /www/ghq1
&&& ServerName
&&& &/VirtualHost&
&&& &VirtualHost 172.16.3.50&
&&& DocumentRoot /www/ghq2
&&& ServerName www.ghq2.org
&&& &/VirtualHost&
&&& 配置简单说明:“Listen”默认httpd服务会监控第80号通信端口, “Listen”选项让用户自行指定apache 服务器监控的IP地址或通信端口。
&&& “DocumentRoot”:指定apache 服务器存放网页的根目录;“ServerName”:允许用户自行设置主机名,这个名称将被送到远程连接程序,以取代安装apache 服务器主机的真实名称。&VirtualHost IP &和&/VirtualHost&构成虚拟主机的语法结构,其中的IP就是我们在服务器上绑定的不同的IP地址,也可以是IP地址加上通信端口号(见下面的例子)。
&&& 如果服务器有两个IP地址(172.16.3.40和 172.16.3.50)分别对应域名 和www.ghq2.org。对每个域名,我们都希望在80端口和8080端口发布我们的网站。可以这样配置:
&&& 服务器配置(apache的配置文件httpd.conf)
&&& Listen 172.16.3.40:80
&&& Listen 172.16.3.40:8080
&&& Listen 172.16.3.50:80
&&& Listen 172.16.3.50:8080
&&& &VirtualHost 172.16.3.40:80&
&&& DocumentRoot /www/ghq1-80
&&& ServerName
&&& &/VirtualHost&
&&& &VirtualHost 172.16.3.40:8080&
&&& DocumentRoot /www/ghq1-8080
&&& ServerName
&&& &/VirtualHost&
&&& &VirtualHost 172.16.3.50:80&
&&& DocumentRoot /www/ghq2-80
&&& ServerName www.ghq1.org
&&& &/VirtualHost&
&&& &VirtualHost 172.16.3.50:8080&
&&& DocumentRoot /www/ghq2-8080
&&& ServerName www.ghq2.org
&&& &/VirtualHost&
&&& 因此,建立虚拟主机,我们要做好不同的IP对应的域名解析工作,建立相应的目录(如/www/ghq1),将相应的主页内容存放在相应的目录中即可。
二、Apache实现基于主机名的虚拟主机服务(一个IP地址实现多个网站)
&&& 基于主机名字的虚拟主机服务,是目前虚拟主机比较常用的一种方案。因为它不需要更多的IP地址,无须什么特殊的软硬件支持。而且现在的浏览器大都支持这种虚拟主机的实现方法。基于域名的的虚拟主机是根据客户端提交的HTTP头中的关于主机名的部分决定的。使用这种技术,很多虚拟主机可以享用同一个IP地址。
&&& 基于域名的虚拟主机相对比较简单,因为我们只需要配置DNS服务器将每个主机名映射(CNAMES)到正确的IP地址,然后配置Apache HTTP服务器,令其辨识不同的主机名就可以了。基于域名的服务器也可以缓解IP地址(IPV4)不足的问题。这种方式下,各个虚拟主机共享同一份Apache,因此有CGI程序运行时,安全性也不高。
&&& 优点:只要一个IP地址就可以提供大量的虚拟主机服务。
&&& 缺点:安全性差。维护这些虚拟主机时需要更改配置文件,并且需要重新启动Apache进程才能起作用。因此不适合进行大规模的虚拟主机服务。
&&& 如果服务器只有一个IP地址,而在DNS中有很多映射到这个机器。我们想要在这个机器上运行和 www.ghq2.org两个站点。在Apache服务器的配置中创建一个虚拟主机并不会自动在DNS中对主机名做相应更新。我们必须自己在DNS中添加域名来指向我们的IP地址。否则别人是无法看到我们的web 站点。
&&& 服务器配置(apache的配置文件httpd.conf)
&&& # Ensure that Apache listens on port 80
&&& Listen 80
&&& # Listen for virtual host requests on all IP addresses
&&& NameVirtualHost *
&&& &VirtualHost *&
&&& DocumentRoot /www/ghq1
&&& ServerName
&&& # Other directives here
&&& &/VirtualHost&
&&& &VirtualHost *&
&&& DocumentRoot /www/ghq2
&&& ServerName www.ghq2.org
&&& # Other directives here
&&& &/VirtualHost&
&&& 因为*(星号)匹配所有的地址,所以主服务器不接收任何请求。因为 首先出现在配置文件中,所以它拥有最高优先级,可以认为是默认或首要服务器。这意味着如果一个接受的请求不能与某个ServerName指令相匹配, 它将会由第一个VirtualHost所伺服。
&&& 当我们的IP地址无法确定的时候,使用*是很方便的--比如说, ISP给我们配置的是动态IP地址(如ADSL拨号上网),而我们有使用了某种动态域名解析系统时。因为*匹配任何IP 地址,所以在这样的情况下,不论IP地址如何变化,我们都不需要另外进行配置。上述配置就是我们在绝大多数情况下使用基于域名的虚拟主机时将要用到的。
本文档的涵义一言以蔽之就是:不要让Apache在解析配置文件的时候用到DNS。 如果Apache在解析配置文件时用到了DNS,您的服务器就会发生可靠性的问题(也可能根本无法启动), 或者遭致拒绝(偷窃)服务攻击(包括用户可以从其他用户那里偷窃点击)。
&一个简单示例
&&main server&地址
&避免这些问题的小技巧
&附录:进一步的提示
一个简单示例
&VirtualHost www.abc.dom&
ServerAdmin
为了让Apache功能正常,一个虚拟主机绝对需要以下两部分的信息: ServerName和与服务器对应的至少一个IP地址。 这个示例没有包括IP地址,于是Apache必须用DNS来查询www.abc.dom的地址。 如果在某些不可预料的情况下,当您的服务器解析配置文件时没有得到DNS的支持, 那么这个虚拟主机 将不会被配置。 它将不会对任何请求作出反应。(在Apache的1.2版本之前,服务器甚至无法启动)。
假设www.abc.dom的IP地址是10.0.0.1。那么看看以下这个配置片断:
&VirtualHost 10.0.0.1&
ServerAdmin
现在Apache需要DNS对这个虚拟主机进行反向域名解析来确定ServerName。 如果反向解析失败,那么这将导致这个虚拟主机部分功能丧失。 (在Apache的1.2版本之前,服务器将不能启动)。如果虚拟主机是基于域名的, 它将完全不能使用,但如果它是基于IP的,那么它将很有可能工作。 然而,如果Apache不得不为一个已经包含了服务器域名的服务器产生一个完整的URL, 那么它将可能产生一个无效的URL。
以下是一个可以避免上述两个问题的配置片断.
&VirtualHost 10.0.0.1&
ServerName www.abc.dom
ServerAdmin
拒绝服务主要由(至少)两种形式导致。 如果您在运行Apache 1.2以前的版本,在上述两种情况下,如果您的任何一个虚拟主机的DNS解析失败, 您都会无法启动服务。在一些情况下,DNS解析甚至不在您的控制范围之内。 比如说,如果abc.dom是您的一个客户,而且他们自己控制着DNS。 那么仅仅是因为他们删除了www.abc.dom这个记录, 都会导致您的服务器(1.2之前的版本)无法启动。
另外一种形式就更隐蔽了。比如说下面这个配置片断:
&VirtualHost www.abc.dom&
& ServerAdmin
&VirtualHost www.def.dom&
& ServerAdmin
假设您已经为www.abc.dom设定了10.0.0.1, 而为www.def.dom设定了10.0.0.2。 更进一步,假设自己控制DNS。在这种配置下, 您已经把放到了一个可以将所有指向 的所有流量据为己有的情况之下。为了达到这样的目的, 他们只需要把www.def.dom的地址解析设置成10.0.0.1就可以了。 因为他们控制着自己的DNS服务, 所以您无法阻止他们把这个记录指向任何一个IP地址。
然后,所有向10.0.0.1发出的请求 (包括用户所有类似http://www.abc.dom/任何字符的URL) 都将会为这个虚拟主机所接收。 为了更好的理解着一切是怎样发生的, 您需要一个关于Apache是怎样将进入的请求分配给它的虚拟主机的深入说明。 您可以在这里发现一个完整的文档。
&main server&地址
在Apache 1.1中,基于域名的虚拟主机支持 需要Apache知道运行着httpd的主机的IP地址。 一般来说可以用全局变量ServerName(如果存在) 或者调用C的方法gethostname(与在命令行模式下键入hostname得到的返回值一样)。 接着它就会利用DNS来查找这个地址。目前还没有办法避免这样的查找。
如果您担心这样的查找会因为您的DNS服务器没有启动而遭到失败的结果, 您就可以在/etc/hosts中插入一条记录来确定主机名 (此文件中应该已经存在这条记录了,否则您的机器无法正常启动)。 然后,您要确认您的机器已经配置为当DNS解析失败的情况下, 它将会使用/etc/hosts根据所使用的操作系统不同, 您可能需要在/etc/resolv.conf或/etc/nsswitch.conf 两个文件中选择一个进行编辑。
如果您的服务器不必因为其他理由而使用DNS, 您也许不必在把HOSTRESORDER环境变量设置为&local&的情况下运行Apache。 这都取决于您所使用的操作系统和解析库。 如果您没有使用mod_env来控制环境变量,它还将影响到CGI。 强烈建议您参考一下您所使用的操作系统附带的man帮助或FAQ。
避免这些问题的小技巧
在VirtualHost中使用IP地址
在Listen中使用IP地址
确保所有的虚拟主机拥有显式的ServerName定义。
创建一个不包含任何服务页面的&VirtualHost_default_:*&服务器
附录:进一步的提示
涉及到DNS的情况都很让人不舒服。 在Apache 1.2 中,我们努力想让服务器在DNS解析失败的情况下至少保持能够启动, 但可能我们还是没能做到最好。在当今重编号成了必须的Internet上面, 在配置文件中显式的写明IP地址已经成为不合时宜的行为了。
上述盗窃攻击的解决办法是, 在一个正向的DNS查询结果后部署一个逆向DNS解析并将两个域名进行比较。 如果不同,就禁用相应的虚拟主机。 这个方法需要一个正确配置了的逆向域名解析服务器 (因为FTP服务器和TCP封装进行的“双重逆向”DNS处理的普遍应用,这已为大部分管理员所熟知了)。
在某些情况下,如果没有使用IP地址而DNS解析又失败了, 那么正常启动一个基于域名的虚拟主机看来是不可能的。 一些诸如禁用部分配置文件这样的权宜之计会带来比根本不能启动更遭的不可预测的结果。
随着HTTP/1.1的部署以及浏览器和代理服务器开始支持Host头, 我们完全避免使用基于IP的虚拟主机也逐渐成为可能。 这种状况下,web服务器也不必在配置时进行DNS的查询。 但在1997年3月,这些特性的采用还没有广泛到可以在重要的web服务器应用的地步。
/download/doc/apache/ApacheManual/dns-caveats.html#example
/download/doc/apache/ApacheManual/mod/core.html#virtualhost
&VirtualHost&和&/VirtualHost&用于封装一组仅施用于特定虚拟主机的指令。任何在虚拟主机配置中可以使用的指令也同样可以在这里使用。当服务器接受了一个特定虚拟主机的文档请求时,它会使用封装在&VirtualHost&配置段中的指令。地址可以是
虚拟主机的IP地址;
虚拟主机IP地址对应的完整域名;
字符*,仅与NameVirtualHost *配合使用以匹配所有 的IP地址;或是
字符串_default_,与基于IP的虚拟主机联用以捕获所 有没有匹配的IP地址。
&VirtualHost 10.1.2.3&
ServerAdmin
IPv6的地址必须放入方括号中指定,否则作为可选项的端口号将无法确定。一个IPv6的示例如下:
&VirtualHost [fe80::a00:20ff:fea7:ccea]&
ServerAdmin
每个虚拟主机必须对应不同的IP地址、端口号或是不同的主机名。在第一种情况下,服务器所在物理机器必须配置为可以为多个地址接受IP包。(在机器没有多个网络硬件界面的情况下,如果您的操作系统支持,您可以使用ifconfig alias命令来达到这个目的。)。
当使用基于IP的虚拟主机时,特殊的名称_default_可以在没有匹配上其它列出的虚拟主机的情况下作为匹配任何IP地址的虚拟主机。在没有进行_default_虚拟主机的设定时,在没有IP与请求匹配的情况下,将使用“主服务器”(包括所有在虚拟主机配置段之外的配置)的配置。(但请注意:任何匹配NameVirtualHost指令的IP地址既不会使用&main&服务器配置,也不会使用_default_虚拟主机的配置。 参阅基于域名的虚拟主机文档获得更多详情。)
您可以指定一个:端口来改变匹配的端口。如果没有指定,它将沿用主服务器中离它最近的那个Listen语句指定的值。您也可以指定:*来匹配那个地址上的所有端口。(当您使用_default_时,这是推荐采用的方法。)
安全提示:参阅安全提示文档获得为什么当您存储日志文件的目录对于启动服务器以外的用户来说是可写的会危及服务器安全的详细资料。
注意:&VirtualHost&的使用不会影响到Apache侦听的地址。您也许需要使用Listen来确保Apache侦听着正确的地址。
为调试程序,本机安装iis与apache,无法同时使用80端口,现给出解决方法:
IIS5,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2 原文地址
c:/Inetpub/Adminscripts
cscript adsutil.vbs set w3svc/disablesocketpooling true
该命令反馈如下disablesocketpooling : (BOOLEAN) True
Inetpub/AdminScripts&cscript adsutil.vbs set w3svc/disablesocketpooling true
由于 DisableSocketPooling 在 IIS 6.0 元数据库架构 (MBSchema.xml) 中被定义为有效属性,所以,您仍然可以使用 Adsutil.vbs 设置该属性,但这种设置不起作用。IIS 6.0 中的功能是新增的核心级别驱动程序 HTTP.sys 的一部分。要配置 HTTP.sys,您必须使用 Httpcfg.exe
IIS6,多IP下共存,IIS为192.168.0.1,apache为192.168.0.2 原文地址
到2003的CD下的 support/tools/Support.cab。解压出httpcfg.exe文件,COPY到windows/system32/目录下,用法自己看帮助
绑定到某IP: httpcfg set iplisten -i 192.168.0.1
即命令使用IIS的只监听指定的IP及端口
查看绑定: httpcfg query iplisten
删除绑定: httpcfg delete iplisten -i 192.168.0.1
net stop Apache2
net stop iisadmin /y
net START Apache2
net START w3svc
保证iis下的ip设置为全局默认,Apache中httpconf设置listen 192.168.0.2:80,就应该可以两个服务同时运行,相互不冲突了。
IIS的访问地址为http://192.168.0.1,Apache访问地址为http://192.168.0.2
网上常用的单IP共用80端口方法,不过不推荐,只是使用Apache的代理,速度有影响将apache设为使用80端口,IIS使用其它端口,比如81,然后将apache作为IIS的代理。
在httpd.conf里面,取消下面四行的注释:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
然后建立一个虚拟主机,将该域名的所有访问转向81端口。
ServerName iloves.vicp.net
ProxyPass / http://localhost:81/
ProxyPassReverse / http://localhost:81/
这样,对外就可以只需要一个端口,即可同时使用apache和IIS的功能了
类推,使用第二种方法,你可以在IIS上配置PHP4,Apache2中配置PHP5,只需要IIS中安装PHP4,把php.ini复制到/windows目录即可,这个就不用说了吧,Apache2中,只要把PHP5的php.ini放在PHP5安装目录里面就行了
配置Apache以支持PHP5:
LoadModule php5_module &D:/PHPServer/PHP5/php5apache2.dll&
AddType application/x-httpd-php .php
DirectoryIndex index.html index.php
PHPIniDir &D:/PHPServer/PHP5&
其中最重要的一条就是 PHPIniDir,用来指明php.ini文件所在位置,即PHP5的安装目录,注意所有目录的应该改为D:/PHPServer/PHP5这种格式,而非D:/PHPServer/PHP5,IIS的访问地址为http://192.168.0.1,Apache访问地址为http://192.168.0.2
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:544409次
积分:6912
积分:6912
排名:第1142名
原创:188篇
转载:93篇
评论:99条
(3)(1)(1)(1)(1)(1)(12)(2)(2)(4)(1)(1)(2)(6)(2)(2)(1)(2)(8)(5)(19)(13)(7)(2)(4)(2)(2)(12)(1)(3)(2)(1)(4)(9)(12)(6)(1)(5)(2)(3)(13)(7)(20)(42)(30)(1)(2)如何让IIS6与Apache共用80端口(IP不同)?头大,按网上的试了httpcfg还是不行
[问题点数:50分,结帖人cuixiping]
如何让IIS6与Apache共用80端口(IP不同)?头大,按网上的试了httpcfg还是不行
[问题点数:50分,结帖人cuixiping]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
本帖子已过去太久远了,不再提供回复功能。wdp_ideal& &15,445 views &
IIS默认监听所有ip地址的80端口的网站属性中只选择“全部未分配”,则该网站就可以使用所有本机可用的ip地址。
1.本地连接中配置多个ip地址(属性→tcp/ip→高级)
2.为IIS绑定一个需要的ip
3.修改kerio中http服务,绑定另一个ip,端口依然是80
4.配置IIS(禁用套接字池)
①命令行切换到C:\Inetpub\Adminscripts目录
②cscript. adsutil.vbs set w3svc/disablesocketpooling true
③命令返回:disablesocketpooling&&(BOOLEAN) True
④重启电脑——————————————————————————-IIS6
1.本地连接中配置多个ip地址(属性→tcp/ip→高级)
2.为IIS绑定一个需要的ip
3.修改Tomcat的配置文件,绑定另一个ip,端口依然是80(turbomail\web\conf\server.xml)
&Connector port=”80″ protocol=”HTTP/1.1″ connectionTimeout=”2;&& redirectPort=”;/&在后面加上需要Tomcat监听的ip地址,例如:address=”192.168.0.3″
&Connector port=”80″ protocol=”HTTP/1.1″ connectionTimeout=”2;&& redirectPort=”; address=”192.168.0.3″/&
4.配置IIS(禁用套接字池)
①2003光盘,support/tools/Support.cab里面的httpcfg.exe,拷贝到C:\Windows\system32\
httpcfg set iplisten -i 192.168.0.3
IIS只监听192.168.0.3
httpcfg query iplisten
httpcfg delete iplisten -i 192.168.0.3
②命令行切换到C:\Inetpub\Adminscripts目录
③cscript. adsutil.vbs set w3svc/disablesocketpooling true
④命令返回:disablesocketpooling&&(BOOLEAN) True
⑤重启电脑
启动失败?提示端口占用?重启服务器即可
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
文件名为中文的时候,会出现乱码,以及无法上传、下载、删除等一些问题。主要是由编码引起的,serv-u默认的编码是UTF-8。
设置步骤:
1、打开serv-u控制台,点击“为域配置高级FTP命令设置和行为”。
2、点击“全局属性”。
3、在“高级选项”里,把“对所有收发的路径和文件名使用UFT-8编码”前面的钩去掉!
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
061.014.064.000;061.014.095.255;台湾省;;
061.014.096.000;061.014.191.255;;;
061.014.192.000;061.014.255.255;菲律宾;;
061.015.000.000;061.016.116.255;香港;特别行政区;
061.016.117.000;061.016.117.255;台湾省;;
061.016.118.000;061.016.162.255;香港;特别行政区;
061.016.163.000;061.016.163.255;印度;;
061.016.164.000;061.016.164.254;香港;;
061.016.164.255;061.016.255.255;印度;;
061.017.000.000;061.017.127.255;印度;DISHNET用户;
061.017.128.000;061.018.255.255;香港;特别行政区;
061.019.000.000;061.019.063.255;泰国;;
061.019.064.000;061.019.127.255;;;
061.019.128.000;061.019.255.255;泰国;;
061.020.000.000;061.020.255.255;台湾省;;
061.021.000.000;061.021.255.255;日本;@Home网络;
061.022.000.000;061.027.255.255;日本;;
061.028.000.000;061.028.000.255;广东省肇庆市;盈联宽带;
061.028.001.000;061.028.001.255;广东省广州市;;
061.028.002.000;061.028.002.249;广东省湛江市;;
061.028.002.250;061.028.002.250;广东省湛江市;师范学院西区学生宿舍二栋;
061.028.002.251;061.028.002.255;广东省湛江市;;
061.028.003.000;061.028.005.049;广东省广州市;;
061.028.005.050;061.028.005.050;广东省佛山市禅城区;汾江中路画王网吧;
061.028.005.051;061.028.005.181;广东省广州市;;
061.028.005.182;061.028.005.182;广东省揭阳市;普宁师范学校;
061.028.005.183;061.028.008.255;广东省广州市;;
061.028.009.000;061.028.009.255;北京师范大学;珠海校区;
061.028.010.000;061.028.012.255;广东省广州市;;
061.028.013.000;061.028.013.029;广东省潮州市;;
061.028.013.030;061.028.013.030;广东省潮州市;聚友网吧;
061.028.013.031;061.028.013.049;广东省潮州市;;
061.028.013.050;061.028.013.050;广东省潮州市;巨通网吧;
061.028.013.051;061.028.013.065;广东省潮州市;;
061.028.013.066;061.028.013.066;广东省潮州市;博能网吧;
061.028.013.067;061.028.013.069;广东省潮州市;;
061.028.013.070;061.028.013.070;广东省潮州市;蜘蛛网吧;
061.028.013.071;061.028.013.073;广东省潮州市;;
061.028.013.074;061.028.013.074;广东省潮州市;阳光网吧;
061.028.013.075;061.028.013.077;广东省潮州市;;
061.028.013.078;061.028.013.078;广东省潮州市;阳光网吧;
061.028.013.079;061.028.013.081;广东省潮州市;;
061.028.013.082;061.028.013.082;广东省潮州市;中特网吧;
061.028.013.083;061.028.013.085;广东省潮州市;;
061.028.013.086;061.028.013.086;广东省潮州市;天鹅网吧;
061.028.013.087;061.028.013.255;广东省潮州市;;
061.028.014.000;061.028.021.255;广东省广州市;;
061.028.022.000;061.028.022.255;广东省广州市;盈联宽带;
061.028.023.000;061.028.027.255;广东省广州市;;
061.028.028.000;061.028.033.255;广东省深圳市;;
061.028.034.000;061.028.034.255;广东省广州市;ADSL;
061.028.035.000;061.028.035.255;广东省东莞市;;
061.028.036.000;061.028.042.255;广东省广州市;;
061.028.043.000;061.028.044.255;广东省佛山市;;
061.028.045.000;061.028.053.077;广东省广州市;盈联宽带;
061.028.053.078;061.028.053.078;广东省珠海市;拱北风云动网吧;
061.028.053.079;061.028.127.255;广东省广州市;盈联宽带;
061.028.128.000;061.028.255.255;;;
061.029.000.000;061.029.127.255;澳大利亚;REQUEST用户;
061.029.128.000;061.029.255.255;;;
061.030.000.000;061.030.255.255;台湾省;东信电讯;
061.031.000.000;061.031.255.255;台湾省;;
061.032.000.000;061.043.255.255;韩国;;
061.044.000.000;061.044.127.255;日本;FB-NET;
061.044.128.000;061.044.191.255;日本;;
061.044.192.000;061.044.223.255;日本;DTI-NET;
061.044.224.000;061.044.226.255;日本;HIMAWARI-NET;
061.044.227.000;061.044.232.255;日本;OOMURA-NET;
061.044.233.000;061.044.233.255;日本;;
061.044.234.000;061.044.239.255;日本;ICV-NET;
061.044.240.000;061.045.255.255;日本;;
061.046.000.000;061.046.101.255;日本;JCOM-NET;
061.046.102.000;061.046.127.255;日本;;
061.046.128.000;061.046.143.255;日本;HCT-NET;
061.046.144.000;061.046.159.255;日本;TCN-NET;
061.046.160.000;061.046.255.255;日本;;
061.047.000.000;061.047.255.255;;;
061.048.000.000;061.048.049.255;北京市;网通ADSL;
061.048.050.000;061.048.050.255;北京市;网通LAN用户;
061.048.051.000;061.048.061.255;北京市;网通ADSL;
061.048.062.000;061.048.062.255;北京市;首都机场;
061.048.063.000;061.048.127.255;北京市;网通ADSL;
061.048.128.000;061.048.128.255;北京市;网通LAN接入;
061.048.129.000;061.048.169.255;北京市;网通ADSL;
061.048.170.000;061.048.170.255;北京市;网通LAN接入;
061.048.171.000;061.048.211.255;北京市;网通ADSL;
061.048.212.000;061.048.212.255;北京市朝阳区;网通ADSL;
061.048.213.000;061.049.106.255;北京市;网通ADSL;
061.049.107.000;061.049.109.255;北京市海淀区;网通ADSL;
061.049.110.000;061.049.119.255;北京市;网通ADSL;
061.049.120.000;061.049.120.255;北京市海淀区;网通ADSL;
061.049.121.000;061.049.121.255;北京市海淀区;中关村ADSL;
061.049.122.000;061.049.138.255;北京市;网通ADSL;
061.049.139.000;061.049.139.255;北京市西城区;网通ADSL;
061.049.140.000;061.049.170.255;北京市;网通ADSL;
061.049.171.000;061.049.171.255;北京市丰台区;网通ADSL;
061.049.172.000;061.049.176.161;北京市;网通ADSL;
061.049.176.162;061.049.176.162;北京市东城区;福降网吧;
061.049.176.163;061.049.183.255;北京市;网通ADSL;
061.049.184.000;061.049.187.255;北京市海淀区;网通ADSL;
061.049.188.000;061.049.188.255;北京市;网通FTTB小区宽带;
061.049.189.000;061.049.189.251;北京市海淀区;网通ADSL;
061.049.189.252;061.049.189.252;北京市海淀区;慧谷工业园特丽洁集团;
061.049.189.253;061.049.189.255;北京市海淀区;网通ADSL;
061.049.190.000;061.049.205.255;北京市;网通ADSL;
061.049.206.000;061.049.206.255;北京市宣武区;网通ADSL;
061.049.207.000;061.049.227.255;北京市;网通ADSL;
061.049.228.000;061.049.228.255;北京市东城区;网通ADSL;
061.049.229.000;061.049.255.255;北京市;网通ADSL;
061.050.000.000;061.050.003.255;北京市;网通16900拨号;
061.050.004.000;061.050.035.255;北京市;;
061.050.036.000;061.050.038.255;北京市海淀区;;
061.050.039.000;061.050.138.017;北京市;;
061.050.138.018;061.050.138.018;北京市;昌平网吧;
061.050.138.019;061.050.141.255;北京市;;
061.050.142.000;061.050.142.255;北京市;石油大学;
061.050.143.000;061.050.144.255;北京市;;
061.050.145.000;061.050.146.255;北京市顺义区;ADSL;
061.050.147.000;061.050.156.255;北京市;;
061.050.157.000;061.050.157.255;北京市顺义区;LAN;
061.050.158.000;061.050.172.143;北京市;;
061.050.172.144;061.050.172.144;北京市通州区;北京物资学院校园网;
061.050.172.145;061.050.204.255;北京市;;
061.050.205.000;061.050.205.155;北京市怀柔区;ADSL;
061.050.205.156;061.050.205.156;中国人民解放军装备指挥技术学院;;
061.050.205.157;061.050.206.255;北京市怀柔区;ADSL;
061.050.207.000;061.050.213.224;北京市;;
061.050.213.225;061.050.213.225;北京市密云县;教育网;
061.050.213.226;061.050.217.255;北京市;;
061.050.218.000;061.050.218.255;北京市大兴区;ADSL;
061.050.219.000;061.050.220.255;北京市;;
061.050.221.000;061.050.221.082;北京大学;软件学院;
061.050.221.083;061.050.221.083;北京工业大学;实验学院;
061.050.221.084;061.050.221.255;北京大学;软件学院;
061.050.222.000;061.050.229.255;北京市;;
061.050.230.000;061.050.239.255;北京市平谷区;歌华宽带;
061.050.240.000;061.050.240.255;北京市昌平区;歌华宽带;
061.050.241.000;061.050.243.255;北京市;网通ADSL;
061.050.244.000;061.050.246.255;北京市顺义区;/平谷区歌华宽带;
061.050.247.000;061.050.247.255;北京市通州区;ADSL;
061.050.248.000;061.050.249.255;北京市大兴区;/通州区电信局ADSL;
061.050.250.000;061.050.252.255;北京市平谷区;歌华宽带;
061.050.253.000;061.050.253.255;北京市通州区;/大兴区ADSL;
061.050.254.000;061.050.254.255;北京市通州区;网通ADSL;
061.050.255.000;061.050.255.255;北京市平谷区;歌华宽带;
061.051.000.000;061.051.043.255;北京市;网通ADSL;
061.051.044.000;061.051.060.255;北京市海淀区;ADSL;
061.051.061.000;061.051.061.255;北京市海淀区;中关村ADSL;
061.051.062.000;061.051.062.255;中国农业大学;(西区)ADSL;
061.051.063.000;061.051.065.255;北京市海淀区;ADSL;
061.051.066.000;061.051.068.255;北京市西城区;ADSL;
061.051.069.000;061.051.086.255;北京市海淀区;ADSL;
061.051.087.000;061.051.088.255;北京市海淀区;/石景山区ADSL;
061.051.089.000;061.051.092.255;北京市海淀区;ADSL;
061.051.093.000;061.051.093.255;北京市海淀区;/石景山区ADSL;
061.051.094.000;061.051.094.255;北京市海淀区;五棵松ADSL;
061.051.095.000;061.051.100.255;北京市海淀区;ADSL;
061.051.101.000;061.051.101.255;北京市石景山区;ADSL;
061.051.102.000;061.051.114.255;北京市海淀区;/石景山区ADSL;
061.051.115.000;061.051.116.255;北京市石景山区;ADSL;
061.051.117.000;061.051.124.255;北京市海淀区;ADSL;
061.051.125.000;061.051.125.255;北京市;网通ADSL(北大电信局);
061.051.126.000;061.051.135.255;北京市海淀区;ADSL;
061.051.136.000;061.051.138.255;北京市;网通ADSL;
061.051.139.000;061.051.139.255;北京市海淀区;网通ADSL;
061.051.140.000;061.051.142.255;北京市;网通ADSL;
061.051.143.000;061.051.144.255;北京市海淀区;ADSL;
061.051.145.000;061.051.145.255;中国农业大学;中以楼;
061.051.146.000;061.051.146.255;北京科技大学;;
061.051.147.000;061.051.153.255;北京市海淀区;ADSL;
061.051.154.000;061.051.154.255;北京市西城区;ADSL;
061.051.155.000;061.051.156.255;北京市海淀区;ADSL;
061.051.157.000;061.051.157.255;北京市西城区;ADSL;
061.051.158.000;061.051.161.042;北京市海淀区;/西城区ADSL;
061.051.161.043;061.051.161.043;北京市;多音科技公司;
061.051.161.044;061.051.162.255;北京市海淀区;/西城区ADSL;
061.051.163.000;061.051.164.255;北京市西城区;ADSL;
061.051.165.000;061.051.166.255;北京市海淀区;/宣武区ADSL;
061.051.167.000;061.051.167.255;北京市宣武区;ADSL;
061.051.168.000;061.051.171.255;北京市海淀区;ADSL;
061.051.172.000;061.051.185.255;北京市崇文区;ADSL;
061.051.186.000;061.051.187.255;北京市;网通ADSL;
061.051.188.000;061.051.188.255;北京市东城区;ADSL;
061.051.189.000;061.051.191.255;北京市崇文区;ADSL;
061.051.192.000;061.051.193.255;北京市东城区;ADSL;
061.051.194.000;061.051.194.255;北京市崇文区;ADSL;
061.051.195.000;061.051.203.255;北京市东城区;ADSL;
061.051.204.000;061.051.209.255;北京市;网通ADSL;
061.051.210.000;061.051.210.255;北京市海淀区;ADSL;
061.051.211.000;061.051.212.255;北京市海淀区;/西城区网通ADSL;
061.051.213.000;061.051.221.255;北京市海淀区;网通ADSL;
061.051.222.000;061.051.222.255;北京市;网通ADSL;
061.051.223.000;061.051.223.255;北京市海淀区;ADSL;
061.051.224.000;061.051.224.255;北京市东城区;ADSL;
061.051.225.000;061.051.234.255;北京市朝阳区;/东城区ADSL;
061.051.235.000;061.051.246.255;北京市海淀区;ADSL;
061.051.247.000;061.051.247.255;北京市朝阳区;ADSL;
061.051.248.000;061.051.248.255;北京市丰台区;ADSL;
061.051.249.000;061.051.250.255;北京市朝阳区;ADSL;
061.051.251.000;061.051.251.255;北京市崇文区;;
061.051.252.000;061.051.255.255;北京市海淀区;ADSL;
061.052.000.000;061.052.001.193;河南省郑州市;网通ADSL;
061.052.001.194;061.052.001.194;河南省郑州市;金通计算机公司(西郊);
061.052.001.195;061.052.125.250;河南省郑州市;网通ADSL;
061.052.125.251;061.052.125.251;河南省郑州市;中国国际期货经纪有限公司郑州营业部;
061.052.125.252;061.052.141.255;河南省郑州市;网通ADSL;
061.052.142.000;061.052.143.255;河南省郑州市;姜寨;
061.052.144.000;061.052.224.255;河南省郑州市;网通ADSL;
061.052.225.000;061.052.225.255;河南省郑州市;金水区ADSL;
061.052.226.000;061.052.245.255;河南省郑州市;网通ADSL;
061.052.246.000;061.052.246.255;河南省郑州市;通信宽带王;
061.052.247.000;061.052.251.096;河南省郑州市;网通ADSL;
061.052.251.097;061.052.251.097;河南省郑州市;丰乐园大酒店;
061.052.251.098;061.052.255.255;河南省郑州市;网通ADSL;
061.053.000.000;061.053.010.255;河南省许昌市;网通;
061.053.011.000;061.053.011.255;河南省洛阳市;网通;
061.053.012.000;061.053.013.255;河南省许昌市;网通;
061.053.014.000;061.053.017.255;河南省平顶山市;网通;
061.053.018.000;061.053.020.255;河南省许昌市;网通;
061.053.021.000;061.053.021.255;河南省平顶山市;网通;
061.053.022.000;061.053.023.255;河南省安阳市;网通;
061.053.024.000;061.053.024.255;河南省驻马店市;网通;
061.053.025.000;061.053.025.255;河南省洛阳市;网通;
061.053.026.000;061.053.026.255;河南省三门峡市;网通;
061.053.027.000;061.053.027.255;河南省许昌市;网通;
061.053.028.000;061.053.034.002;河南省驻马店市;网通;
061.053.034.003;061.053.034.003;河南省驻马店市;一颗树网吧;
061.053.034.004;061.053.034.004;河南省驻马店市;佳人有约网吧;
061.053.034.005;061.053.034.005;河南省驻马店市;风云网吧;
061.053.034.006;061.053.034.008;河南省驻马店市;网通;
061.053.034.009;061.053.034.009;河南省驻马店市;万维网吧;
061.053.034.010;061.053.034.011;河南省驻马店市;网通;
061.053.034.012;061.053.034.012;河南省驻马店市;精英网吧;
061.053.034.013;061.053.034.014;河南省驻马店市;网通;
061.053.034.015;061.053.034.015;河南省驻马店市;联想网吧;
061.053.034.016;061.053.034.018;河南省驻马店市;网通;
061.053.034.019;061.053.034.019;河南省驻马店市;车站黑网吧;
061.053.034.020;061.053.034.052;河南省驻马店市;网通;
061.053.034.053;061.053.034.053;河南省驻马店市;世纪网吧;
061.053.034.054;061.053.034.060;河南省驻马店市;网通;
061.053.034.061;061.053.034.061;河南省驻马店市;长城网吧;
061.053.034.062;061.053.034.121;河南省驻马店市;网通;
061.053.034.122;061.053.034.122;河南省驻马店市;超时空网吧;
061.053.034.123;061.053.034.123;河南省驻马店市;水宝贝网吧;
061.053.034.124;061.053.034.124;河南省驻马店市;创新网吧;
061.053.034.125;061.053.034.251;河南省驻马店市;网通;
061.053.034.252;061.053.034.252;河南省驻马店市;西平县神秘岛网吧;
061.053.034.253;061.053.035.000;河南省驻马店市;网通;
061.053.035.001;061.053.035.001;河南省驻马店市上蔡县;星际网吧;
061.053.035.002;061.053.035.002;河南省驻马店市上蔡县;蓝天网吧;
061.053.035.003;061.053.035.003;河南省驻马店市上蔡县;前锋网吧;
061.053.035.004;061.053.035.004;河南省驻马店市;网通;
061.053.035.005;061.053.035.005;河南省驻马店市上蔡县;天地人网吧;
061.053.035.006;061.053.035.006;河南省驻马店市上蔡县;心连心网吧;
061.053.035.007;061.053.035.007;河南省驻马店市;网通;
061.053.035.008;061.053.035.008;河南省驻马店市上蔡县;梦思网吧;
061.053.035.009;061.053.035.009;河南省驻马店市;网通;
061.053.035.010;061.053.035.010;河南省驻马店
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
1、特定数据库中所有文件压缩T-SQL语法:DBCC SHRINKDATABASE ( database_name | database_id | 0 //指定数据库名或ID&&&& [ , target_percent ]&& //压缩后可用空间百分比&&&& [ , { NOTRUNCATE | TRUNCATEONLY } ] //见下文)[ WITH NO_INFOMSGS ]//取消严重级别0-10的所有信息性消息。注:此语句收缩后的数据库大小不能小于初始创建时数据库的大小。
其中,NOTRUNCATE的作用是通过将已分配的页从文件末尾移动到文件前面的未分配页来压缩数据文件中的数据,此操作实际上并没有起到压缩的作用,而是相当于将有效数据全都分配到空间的最前面,只对数据文件有
用,日志文件不受影响。
TRUNCATEONLY是将文件的末尾后面的空间截断还给系统,文件中间是否压缩不管,因此指定了此命令targer_percent便失效。日志文件依旧不适用。
若不指定NOTRUNCATE或 TRUNCATEONLY就相当于带NOTRUNCATE运行shrinkdatabase再带TRUNCATEONLY运行shrinkdatabase。
示例:机子上有一个做练习的数据库exercise,大小为5G,实际只有100M,因此需要压缩。想保留10%可用空间,可用语句:DBCC SHRINKDATABASE(exercise,10);
2、压缩指定数据库中的某个文件语法:DBCC SHRINKFILE (&&& { file_name | file_id } //数据库文件逻辑名称或ID{ [ , EMPTYFILE ]& //将指定文件中的所有数据迁移到同一文件组中的其他文件&&& | [ [ , target_size ] [ , { NOTRUNCATE | TRUNCATEONLY } ] ] &&& })[ WITH NO_INFOMSGS ]用法同上。
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
1. 结构是值类型,隐式密封 的,不能被继承 ,所以结构类型的变量不能为 null ,两个结构变量也不能引用同一个对象。结构变量的赋值 是从一个结构中把值 复制到另一个结构中。而类变量的赋值只有引用 被复制。
2. 结构可以有实例 构造函数和静态 构造函数,但不能有析构函数 。编译器为每个结构隐式 提供一个无参的默认构造函数 ,它将结构成员设置为相应的 0/0.0/false/null ,这个构造函数不能被删除或重定义 。
3. 可以在结构中创建有参数的构造函数,这和类不同,编译器只在没有其他构造函数声明时才提供隐式的无参构造函数。要调用任何构造函数都要使用 new 运算符 。如果不使用 new 运算符创建结构的实例 ,那么只有显式 地对数据成员赋值后才能使用 这些成员 。
4. 结构的静态构造函数创建并初始化静态数据成员,且不能引用实例成员,它在调用显示声明的构造函数 或对结构静态成员的引用之前 被调用。不能 在结构中对字段 进行初始化 。
5. 由于结构是密封的,所以 protected , internal , abstract , virtual 都不能 用于结构,但可以使用 new 和 override 修饰符,它们在创建一个和基类 System.ValueType 的成员有相同名称的成员时使用 。
6. 结构被用作返回值或值参时,都是对内存中的值 创建一份 copy 。但当用作 ref 或 out 参数时,传入方法的是一个对结构的引用 。
7. C# 中被视为简单类型的原始类型在 .NET 中都被实现为结构。可以使用 partial 来声明分部结构 。结构可以实现接口 。
8. 枚举是值 类型,直接存储它们的数据。枚举只有一种 类型的成员:命名的整数值常量 。声明枚举时成员间使用逗号 (,) ,最后一个没有分号 。每个枚举类型都有一个底层整数类型,默认为 int 。
9. 每个枚举成员被赋值为一个底层类型的常量值,第一个成员赋值为 0 ,并对每一个后续成员多 1 。枚举的成员名是被当做字符串打印的,可以将枚举成员字面量赋给一个枚举变量,也可用一个同类型的变量来赋值。
10. 枚举的底层类型可以通过冒号 来设置,可以是除了 char 外的任意整数 类型 。在枚举中不能有重复的成员名,但成员名的值 可以相同。
可以用枚举来实现位标志:声明一个选中的整数类型的枚举,每个成员由一个比特位置表示。要创建一个带有适当的位标志的字,需要声明一个相应枚举类型的变
量,用按位或 (OR) 运算符设置适当的位,用按位与 (AND) 运算符解开位标志。用位模式时常用 16
进制表示法。要确定是否有一个特定的位被设置了,对标志字和该位标志使用位与运算符。
特性通知编译器该枚举的成员将要被结合为位标志,而不是只作为分开的值使用:另外,它允许一个枚举的 ToString
方法,以对位标志的值提供更合适的格式化。如果他匹配了其中的一个或几个成员, ToString 方法将返回这些成员的字符串 名称。
13. 枚举中的成员是常量 ,不能用修饰符 ,它们都隐式地具有和枚举相同 的可访问性。即使没有枚举类型变量 ,通过枚举类型名 . 成员名 的形式也可以访问成员,因为它们是常量。
14. 比较不同枚举类型的成员会导致一个编译期错误。
原文:/porscheyin/archive//1919160.html
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
index.htm?参数1=数值1&参数2=数值2&参数3=数据3&参数4=数值4&......
静态html文件js读取url参数 根据获取html的参数值控制html页面输出
一、字符串分割分析法。
  这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET
language="javascript"&
function GetRequest() {
&& var url =
location. //获取url中"?"符后的字串
&& var theRequest =
new Object();
(url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for(var i = 0; i & strs. i ++) {
theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
&& return theR
然后我们通过调用此函数获取对应参数值:
language="javascript"&
var Request = new Object();
Request = GetRequest();
var 参数1,参数2,参数3,参数N;
参数1 = Request['参数1'];
参数2 = Request['参数2'];
参数3 = Request['参数3'];
参数N = Request['参数N'];
以此获取url串中所带的同名参数
二、正则分析法。function
GetQueryString(name) {
&& var reg = new
RegExp("(^|&)" + name +
"=([^&]*)(&|$)","i");
&& var r =
window.location.search.substr(1).match(reg);
&& if (r!=null) return
unescape(r[2]);
alert(GetQueryString("参数名1"));
alert(GetQueryString("参数名2"));
alert(GetQueryString("参数名3"));
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
最近有同学问到,这2者的区别。&&&& “Web 应用程序项目”是 Visual Studio 2005 Service Pack&1 (SP1)中新增加的功能,设计Web 应用程序项目模型是为了向开发人员提供一种与 Visual Studio .NET 2003 应用程序的项目模型更为类似,并且仍可以提供 Visual Studio 2005 和 ASP.NET 2.0 版的所有新增功能的项目模型。新的 Web 应用程序项目类型不会取代 Visual Studio 2005 中引入的网站项目类型。相反,它只是一种备选项目类型,您可以根据自己的需要和喜欢的开发工作流来决定是否选用它。&
&在MSN文档中,有关于这一项目类型的详细说明:
WebApplication编程模型的优点:
●网站编译速度快,使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去。
●生成的程序集WebSite:生成随机的程序集名,需要通过插件WebDeployment才可以生成单一程序集WebApplication:可以指定网站项目生成单一程序集,因为是独立的程序集,所以和其他项目一样可以指定应用程序集的名字、版本、输出位置等信息
●可以将网站拆分成多个项目以方便管理
●可以从项目中和源代码管理中排除一个文件
●支持VSTS的Team Build方便每日构建
●更强大的代码检查功能,并且检查策略受源代码控制
●可以对编译前后进行自己规定的处理
●对App_GlobalResources 的Resource强类支持(网上说的,还没有了解过)
●直接升级使用VS2003构建的大型系统
WebSite编程模型的优点:
●动态编译该页面,马上可以看到效果,不用编译整个站点(主要优势)
●同上,可以使错误的部分和使用的部分不相干扰(可以要求只有编译通过才能签入)
●可以每个页面生成一个程序集(不会采用这种方式)
●可以把一个目录当做一个Web应用来处理,直接复制文件就可以发布,不需要项目文件(无所谓,只适合小站点)
●可以把页面也编译到程序集中(应该用不到,而且WebApplication也可以通过WebDeployment插件来实现)
两种编程模型的互相转换:
VS2005 SP1内置了转换程序,可以非常方便的从WebSite转换到WebApplication只需要复制文件,右键执行“转换为Web应用程序”即可。未查到有专门的反向转换工具,但比较后发现如果转换也非常简单。
删除所有*.designer.cs将*.aspx、*.ascx、*.master页面文件中的 Codebehind=”FileList.aspx.cs” 批量替换成 CodeFile=”FileList.aspx.cs”
根据网上的资料,还有以下区别:
&&& web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs;Web网站Default.aspx显示有一个原有文件Default.aspx.cs。web应用程序有重新生成和发布两项;Web网站只有一个发布网站。web应用程序和一般的winform没有什么区别都有引用的是命名空间等;Web网站在引用后出现一个bin文件夹那里存放dll和pdb文件。web应用程序可以作为类库被引用;Web网站则不可以作为类库被引用。web应用程序可以添加ASP.Net文件夹中不包括bin、App_Code;Web网站可以添加ASP.Net文件夹包括bin、App_Code。web应用程序还可添加组件和类;Web网站则没有。源文件虽然都是Default.aspx.cs但是web应用程序有命名空间,多了一项System.Collections空间引用。Web应用程序在修改了页面底层的代码之后需要重新进行编译& 网站不需要重新编译& 网站可以添加APS文件夹,Web应用程序不可以& Web应用程序的项目会生成Dll文件& 网站在发布的时候,会自动生成Dll文件,但是每次的Dll文件名都不一样& Web应用程序会有解决方案和项目文件
还有比较明显的web application如果对cs文件进行修改,需要编译才可以,而web site不需要了
在ASP.NET中,可以创建ASP.NET网站和ASP.NET应用程序,但是ASP.NET网站和ASP.NET应用程序开发过程和编译过程是有区别的。ASP.NET应用程序主要有以下特点:可以将ASP.NET应用程序拆分成多个项目以方便开发,管理和维护。可以从项目中和源代码管理中排除一个文件或项目。支持VSTS的Team Build方便每日构建。可以对编译前后的名称,程序集等进行自定义。对App_GlobalResources 的Resource强类支持。
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
今天遇到一个问题,我有一个a.html页面,a页面引用了1.js,1.js里就是一个方法,这个方法的作用是把a.html上一个DIV里的内容替换掉,用的是innerHTML的方式。这个方法在 a.html每次加载的时候执行。
现在问题就出来了,不知大家用过 thickbox没,thickbox里有一个效果就是点击后弹出层是另一个页面的内容,有点类似IFRAME,它的DEMO是"&a href="ajaxLogin.html?height=85&width=250&modal=true" class="thickbox" title="Please Sign In"&login (modal)&/a&
"我在1.js里写入这个。但是却是跳转页面的效果,感觉thickbox.js都没读到。我如果在a.html里直接写入这个DEMO,就会出现正常效果,即弹出一个层。
我用FIREBUG查看浏览器最后得到的代码,发现两个A标签都是一模一样的,觉得真是奇怪啊,为何点击之后的功能不一样呢?
之后我怀疑是页面JS函数在页面加载时并未生效,于是研究了一下关于页面加载时JS函数的执行顺序。
我做了一个测试,新建了一个页面,在head标签中添加一段js代码,在页面的尾部也就是&/body&之前添加一段代码,然后在body的onload事件中引用一个函数,以此来研究三者的执行顺序.
最后的结果是,执行的顺序为:head中的js&页面中的js(将此段Js放置在body标签之外亦为此顺序)&body标签onload事件中的js.
我又看了一下我的a.html.是这样写的:&script. src="js/1.js" type="text/javascript"&&/script&&script. src="js/thickbox.js" type="text/javascript"&&/script&& &script. language="javascript" type="text/javascript"&
$(document).ready(function () {
iniRight();
//这个方法即调用1.js中的innerHTML替换掉前台代码。
}); &/script&再一看thickbox.js.发现里面也有$(document).ready(function ()函数。至此谜底揭开了,原来浏览器读JS文件时,HEAD里是按照顺序读的,当从thickbox.js里读完$(document).ready(function ()时,前台页面并没有对应的A标签,因为&script. language="javascript" type="text/javascript"&
$(document).ready(function () {
iniRight();
//这个方法即调用1.js中的innerHTML替换掉前台代码。
}); &/script&在它之后执行的!所以我把1.html开头部分的顺序做了调整,改为了&script. src="js/1.js" type="text/javascript"&&/script&&script. language="javascript" type="text/javascript"&
$(document).ready(function () {
iniRight();
//这个方法即调用1.js中的innerHTML替换掉前台代码。
}); &/script&&script. src="js/thickbox.js" type="text/javascript"&&/script&&
之后便一切正常了。
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
&&&&&&今天给页面添加验证码控件的时候,搜到一篇比较全的关于验证控件 RegularExpressionValidator控件正则表达式用法的文章。
使用RegularExpressionValidator控件,当然也可以不用RegularExpressionValidator控件在后台直接验证,ValidationExpression属性自带了几个默认验证方法,但是那远远不够的。可以点击“…”弹出的窗口选择你要的正则表达式,或者直接自己写。ErrorMessage属性是报错信息。
验证数字:只能输入1个数字
表达式 ^\d$描述 匹配一个数字匹配的例子 0,1,2,3不匹配的例子只能输入n个数字
表达式 ^\d{n}$ 例如^\d{8}$描述 匹配8个数字匹配的例子 21不匹配的例子
只能输入至少n个数字
表达式 ^\d{n,}$ 例如^\d{8,}$描述 匹配最少n个数字匹配的例子 44321不匹配的例子
只能输入m到n个数字
表达式 ^\d{m,n}$ 例如^\d{7,8}$描述 匹配m到n个数字匹配的例子 4567不匹配的例子 456789
只能输入数字
表达式 ^[0-9]*$描述 匹配任意个数字匹配的例子 4567不匹配的例子 E,清清月儿,http://blog.csdn.net/21aspnet
只能输入某个区间数字
表达式 ^[12-15]$描述 匹配某个区间的数字匹配的例子 12,13,14,15不匹配的例子
只能输入0和非0打头的数字
表达式 ^(0|[1-9][0-9]*)$描述 可以为0,第一个数字不能为0,数字中可以有0匹配的例子 12,10,101,100不匹配的例子 01,清清月儿,http://blog.csdn.net/21aspnet
只能输入实数
表达式 ^[-+]?\d+(\.\d+)?$描述 匹配实数匹配的例子 18,+3.14,-9.90不匹配的例子 .6,33s,67-99
只能输入n位小数的正实数
表达式 ^[0-9]+(.[0-9]{n})?$以^[0-9]+(.[0-9]{2})?$为例描述 匹配n位小数的正实数匹配的例子 2.22不匹配的例子 2.222,-2.22,http://blog.csdn.net/21aspnet
只能输入m-n位小数的正实数
表达式 ^[0-9]+(.[0-9]{m,n})?$以^[0-9]+(.[0-9]{1,2})?$为例描述 匹配m到n位小数的正实数匹配的例子 2.22,2.2不匹配的例子 2.222,-2.2222,http://blog.csdn.net/21aspnet
只能输入非0的正整数
表达式 ^\+?[1-9][0-9]*$描述 匹配非0的正整数匹配的例子 2,23,234不匹配的例子 0,-4,
只能输入非0的负整数
表达式 ^\-[1-9][0-9]*$描述 匹配非0的负整数匹配的例子 -2,-23,-234不匹配的例子 0,4,
只能输入n个字符
表达式 ^.{n}$ 以^.{4}$为例描述 匹配n个字符,注意汉字只算1个字符匹配的例子 1234,12we,123清,清清月儿不匹配的例子 0,123,123www,http://blog.csdn.net/21aspnet/
只能输入英文字符
表达式 ^.[A-Za-z]+$为例描述 匹配英文字符,大小写任意匹配的例子 Asp,WWW,不匹配的例子 0,123,123www,http://blog.csdn.net/21aspnet/
只能输入大写英文字符
表达式 ^.[A-Z]+$为例描述 匹配英文大写字符匹配的例子 NET,WWW,不匹配的例子 0,123,123www,
只能输入小写英文字符
表达式 ^.[a-z]+$为例描述 匹配英文大写字符匹配的例子 asp,csdn不匹配的例子 0,NET,WWW,
只能输入英文字符+数字
表达式 ^.[A-Za-z0-9]+$为例描述 匹配英文字符+数字匹配的例子 1Asp,W1W1W,不匹配的例子 0,123,123,www,http://blog.csdn.net/21aspnet/
只能输入英文字符/数字/下划线
表达式 ^\w+$为例描述 匹配英文字符或数字或下划线匹配的例子 1Asp,WWW,12,1_w不匹配的例子 3#,2-4,w#$,http://blog.csdn.net/21aspnet/
表达式 ^.[a-zA-Z]\w{m,n}$描述 匹配英文字符开头的m-n位字符且只能数字字母或下划线匹配的例子不匹配的例子
验证首字母大写
表达式 \b[^\Wa-z0-9_][^\WA-Z0-9_]*\b描述 首字母只能大写匹配的例子 Asp,Net不匹配的例子
验证网址(带?id=中文)VS.NET2005无此功能
表达式 ^http:\/\/([\w-]+(\.[\w-]+)+(\/[\w-&& .\/\?%&=\u4e00-\u9fa5]*)?)?$
描述 验证带?id=中文匹配的例子 ,=清清月儿不匹配的例子
表达式 ^[\u4e00-\u9fa5]{0,}$描述 只能汉字匹配的例子 清清月儿不匹配的例子
表达式 [0-9]{5,9}描述 5-9位的QQ号匹配的例子 不匹配的例子 10000w,http://blog.csdn.net/21aspnet/
验证电子邮件(验证MSN号一样)表达式 \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*描述 注意MSN用非邮箱也可以匹配的例子 不匹配的例子 .&&
验证身份证号(粗验,最好服务器端调类库再细验证)
表达式 ^[1-9]([0-9]{16}|[0-9]{13})[xX0-9]$描述&&匹配的例子 15或者18位的身份证号,支持带X的不匹配的例子
验证手机号(包含159,不包含小灵通)
表达式 ^13[0-9]{1}[0-9]{8}|^15[9]{1}[0-9]{8}描述 包含159的手机号130-139匹配的例子 139XXXXXXXX不匹配的例子 140XXXXXXXX,http://blog.csdn.net/21aspnet/
验证电话号码号(很复杂,VS.NET2005给的是错的)
表达式(不完美) 方案一 ((\(\d{3}\)|\d{3}-)|(\(\d{4}\)|\d{4}-))?(\d{8}|\d{7})方案二 (^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)&&& 支持手机号但也不完美描述 上海:&&& 3+8位上海:021-上海:(021)-上海:(021)郑州:&&&& 4+7位杭州:&&&& 4+8位还有带上分机号,国家码的情况由于情况非常复杂所以不建议前台做100%验证,到目前为止似乎也没有谁能写一个包含所有的类型,其实有很多情况本身就是矛盾的。如果谁有更好的验证电话的请留言
匹配的例子不匹配的例子
表达式 (P\d{7})|G\d{8})
描述 验证P+7个数字和G+8个数字匹配的例子不匹配的例子 清清月儿,http://blog.csdn.net/21aspnet/
表达式 ^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$
描述 验证IP匹配的例子 192.168.0.1&&& 222.234.1.4不匹配的例子
验证域表达式 ^[a-zA-Z0-9]+([a-zA-Z0-9\-\.]+)?\.(com|org|net||||)$
描述 验证域匹配的例子 csdn.net&&
不匹配的例子 192.168.0.1
验证信用卡表达式 ^((?:4\d{3})|(?:5[1-5]\d{2})|(?:6011)|(?:3[68]\d{2})|(?:30[012345]\d))[ -]?(\d{4})[ -]?(\d{4})[ -]?(\d{4}|3[4,7]\d{13})$
描述 验证VISA卡,万事达卡,Discover卡,美国运通卡匹配的例子不匹配的例子&
验证ISBN国际标准书号表达式 ^(\d[- ]*){9}[\dxX]$
描述 验证ISBN国际标准书号匹配的例子 7-111-19947-2不匹配的例子&
验证GUID全球唯一标识符表达式 ^[A-Z0-9]{8}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{4}-[A-Z0-9]{12}$
描述 格式8-4-4-4-12匹配的例子 b9-41d8-9ef7-9d8b不匹配的例子&
验证文件路径和扩展名表达式 ^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"&&|]+\.txt(l)?$
描述 检查路径和文件扩展名匹配的例子 E:\mo.txt不匹配的例子 E:\ , mo.doc, E:\mo.doc ,http://blog.csdn.net/21aspnet/
验证Html颜色值表达式 ^#?([a-f]|[A-F]|[0-9]){3}(([a-f]|[A-F]|[0-9]){3})?$
描述 检查颜色取值匹配的例子 #FF0000不匹配的例子
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
这个是Activity在指定时间后切换到另一个Activity的关键代码(类似QQ登录时的那种形式)
requestWindowFeature(Window.FEATURE_NO_TITLE);&&getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,&&&&WindowManager.LayoutParams.FLAG_FULLSCREEN);&&setContentView(R.layout.main);&&new CountDownTimer() {&&&@Override&&&public void onTick(long millisUntilFinished) {&&&&// TODO Auto-generated method stub&&&}&&&@Override&&&public void onFinish() { // 倒计时结束后在这里实现activity跳转&&&&Intent intent = new Intent();&&&&intent.setClass(login.this, success.class);&&&&startActivity(intent);&&&&finish(); // 跳转后销毁自身的activity 否则按返回 还会跳回到图片&&&}&&}.start();
还有一个重点是按钮的三种状态的变换(可加载背景图片)
控制按钮的状态,例如正常,聚焦,点击三种状态下怎么去控制样式的方法。
在drawable中添加一个xml文件例如press.xml
&?xml version=”1.0″ encoding=”UTF-8″?&&selector xmlns:android=”“&&&item android:state_pressed=”true” android:drawable=”@drawable/buttonbackground_p” /& &!– pressed –&&&item android:state_focused=”true” android:drawable=”@drawable/buttonbackground_s” /& &!– focused –&&&item android:drawable=”@drawable/buttonbackground_n” /& &!– default –&&/selector&
然后在layout中相应的button控件中添加
android:background=”@drawable/press”
就可以实现button按钮的三种效果状态
(登陆demo源码)
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
网上转载的一篇文章,对理解Linux的启动配置文件有帮助!系统启动文件1. /etc/rc.local系统启动需要加载的守护进程(服务)和执行的程序。该文件只有一条“exit 0”语句,用户可加入自己的启动程序,但需要保证最后的返回是0。如下:#!/bin/sh -e## rc.local## This script. is executed at the end of each multiuser runlevel.# Make sure that the script. will “exit 0″ on success or any other# value on error.## In order to enable or disable this script. just change the execution# bits.## By default this script. does nothing.#启动SSHD/usr/sbin/sshd#启动Telnetservice openbsd-inetd start#启动WEB服务器lighttpdcd /home/usr948/lighttpd-1.4.19/usr/bin./lighttpd -f ./lighttpd.conf#启动xdm,xmanager需要使用它来进行远程登录到桌面。/usr/bin/xdmexit 0注意,该文件中不能加入用户shell下的脚本,例如加入 alias ll=”ls -l” 无效,因为该文件的执行环境是在系统shell下,系统尚未进入用户shell环境。原来我一直搞不懂为什么加入上面的alias语句无效,该问题我在
里发帖得到达人指点如下:
要 加入启动脚本,可修改 /etc/bash.bashrc 或 ~/bashrc 或 /etc/profile 或 ~/.profile。将文件中的语句“ # alias ll=’ls -l’ ”中的“#”号去掉即可。关于ubuntu的bash启动文件从网上查到下面资料:
bash的几个初始化文件 – [Ubuntu]
(1)/etc/profile全局(公有)配置,不管是哪个用户,登录时都会读取该文件。
(2)/ect/bashrcUbuntu没有此文件,与之对应的是/ect/bash.bashrc它也是全局(公有)的bash执行时,不管是何种方式,都会读取此文件。
(3)~/.profile若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。另外,图形模式登录时,此文件将被读取,即使存在~/.bash_profile和~/.bash_login。
(4)~/.bash_login若bash是以login方式执行时,读取~/.bash_profile,若它不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。
(5)~/.bash_profileUnbutu默认没有此文件,可新建。只有bash是以login形式执行时,才会读取此文件。通常该配置文件还会配置成去读取~/.bashrc。
(6)~/.bashrc当bash是以non-login形式执行时,读取此文件。若是以login形式执行,则不会读取此文件。
(7)~/.bash_logout注销时,且是longin形式,此文件才会读取。也就是说,在文本模式注销时,此文件会被读取,图形模式注销时,此文件不会被读取。
下面是在本机的几个例子:1. 图形模式登录时,顺序读取:/etc/profile和~/.profile2. 图形模式登录后,打开终端时,顺序读取:/etc/bash.bashrc和~/.bashrc3. 文本模式登录时,顺序读取:/etc/bash.bashrc,/etc/profile和~/.bash_profile4. 从其它用户su到该用户,则分两种情况:(1)如果带-l参数(或-参数,–login参数),如:su -l username,则bash是lonin的,它将顺序读取以下配置文件:/etc/bash.bashrc,/etc/profile和~ /.bash_profile。(2)如果没有带-l参数,则bash是non-login的,它将顺序读取:/etc/bash.bashrc和~/.bashrc5. 注销时,或退出su登录的用户,如果是longin方式,那么bash会读取:~/.bash_logout6. 执行自定义的shell文件时,若使用“bash -l a.sh”的方式,则bash会读取行:/etc/profile和~/.bash_profile,若使用其它方式,如:bash a.sh, ./a.sh,sh a.sh(这个不属于bash shell),则不会读取上面的任何文件。7. 上面的例子凡是读取到~/.bash_profile的,若该文件不存在,则读取~/.bash_login,若前两者不存在,读取~/.profile。
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
&& 这个问题可能是小组开发的时候经常考虑的问题。把项目分割为多个project, & 方便了设计和调试。但是我们无法共享Session/Application变量。&&& 注意:关于Web应用,前端和后端建议分开部署,即可以考虑将后台管理系统单独部署为虚拟目录。前后端都可以采用分模块开发的方式,项目初期,建议就组织好文件结构,这样有利于后期的集成。&& 关于这个问题,建议您参阅下面的方法(来自于微软全球技术支持中心的建议):&注意:下文中假设您在使用VS.NET做Web开发。&1。 & 打开IIS管理台,将您的两个项目删除。假设为Module1和Module2.&2。 & 在VS.NET中,生成一个ASP.NET & Web & Application. & 假设为Master.&3。 & 打开“我的电脑”,将Module1和Module2目录拷贝到Master下面。&4。 & 打开Master\Module1目录,打开Module1.csproj.webinfo文件, & 修改下面的字段:&&注意,添加了Master字段。&5。 & 在Module2下,重复步骤4。&6. & 打开Module1下面的Web.config,除了 & section, & 删除其余部分。 & 如果您认为有保留的必要,请转移至Master目录下的Web.config.&7。在Module2下,重复步骤6。&8。 & 在Module1下,删除Global.asax* & files。&9。 & 在Module2下,重复步骤8。&10. & Rebuild & Module1和Module2, & 确保输出的Assembly保存在Master目录下的Bin中。&11。在VS.NET中,打开Master项目,然后add & project, & 把Module1和Module2加进来。显然,您可以在他们之间共享Session.&同时,您还可以分小组,分别对Module1和Moduel2进行开发。&对此,网上还有一些建议,用cookie共享您的信息,或者将Session存放在数据库端。
评论已关闭。
抱歉,评论被关闭
wdp_ideal& &0 views &
此文档描述如何在RedHat Enterprise Linux安装并配置单节点的hadoop
Linux可以用作开发和生产环境,目前linux已经支持2000个节点
Win32可以用作开发环境,不支持生产环境
2.环境需求
Sun Java1.6.x
ssh必须安装,
3.下载最新的稳定版hadoop
4.准备运行hadoop
解压缩下载好的hadoop,编辑conf/hadoop-env.sh,在里面至少定义一下JAVA_HOME。
export JAVA_HOME=你的jdk安装路径(太简单了不说了)
尝试运行下面的命令
$ bin/hadoop
将出现hadoop脚本的使用方法
Usage: hadoop [--config confdir] COMMAND
where COMMAND is one of:
& namenode -format&&&& format the DFS filesystem
& secondarynamenode&&& run the DFS secondary namenode
& namenode&&&&&&&&&&&& run the DFS namenode
& datanode&&&&&&&&&&&& run a DFS datanode
现在你可以用以下的三种模式之一来运行你的hadoop
Local (Standalone) Mode
Pseudo-Distributed Mode
Fully-Distributed Mode
5.Standalone Operation
Hadoop默认是以单点模式运行的,这样有利于debugging
下面的例子是复制解压缩后的conf目录到input并且找到与所给的这则表达式匹配的文件。Output是被写入的目录
$ mkdir input&$ cp conf/*.xml input&$ bin/hadoop jar hadoop-examples-*.jar grep input output ‘dfs[a-z.]+’&$ cat output/*
6.Pseudo-Distributed Operation
Hadoop也可以以Pseudo-Distributed Operation这种方式运行在单节点上,此时每一个hadoop守护进程都运行在单独的java进程里。
配置一下文件,内容如下:
conf/core-site.xml
&configuration&
&&&& &property&
&&&&&&&& &name&fs.default.name&/name&
&&&&&& &&&value&hdfs://localhost:9000&/value&
&&&& &/property&
&/configuration&
conf/hdfs-site.xml:
&configuration&
&&&& &property&
&&&&&&&& &name&dfs.replication&/name&
&&&&&&&& &value&1&/value&
&&&& &/property&
&/configuration&
conf/mapred-site.xml:
&configuration&
&&&& &property&
&&&&&&&& &name&mapred.job.tracker&/name&
&&&&&&&& &value&localhost:9001&/value&
&&&& &/property&
&/configuration&
设置无密码ssh
现在检查你是否可以不用密码就能ssh到localhost
$ ssh localhost
如果不能,执行下面的命令
$ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa&$ cat ~/.ssh/id_dsa.pub && ~/.ssh/authorized_keys
接下来格式化一个新的分布式文件系统
$ bin/hadoop namenode –format
开启hadoop守护进程
$ bin/start-all.sh
浏览NameNode 和 JobTracker,默认的浏览端口
NameNode&-&
JobTracker&-&
复制input文件到分布式文件系统
$ bin/hadoop fs -put conf input
至此单节点配置完毕
评论已关闭。
抱歉,评论被关闭
42querys in 1.748 seconds

我要回帖

更多关于 apache iis 80端口 的文章

 

随机推荐