admin 管理员组

文章数量: 887021


2024年2月26日发(作者:discuz商业授权)

使用Microsoft URL Rewrite Module for IIS 7.0修改即可实现*.HTML伪静态

无需修改应用程序映射

在IIS5和IIS6时代,我们使用URL REWRITING可实现URL重写,使得WEB程序实现伪静态,但默认情况下只能实现.ASPX的伪静态,如果要实现伪静态*.HTML的页面,需要将ISAPI里面的*.HTML应用程序映射改为.NET的ISAPI。但在IIS 7时代,这一切已经变得非常简单了,您在中就可以管理这一切了。

在服务器上安装好Microsoft URL Rewrite Module,具体下载地址如下:

Microsoft URL Rewrite Module for IIS 7.0 (x86)

下载地址:/downloads/?tabid=34&g=6&i=1691

Microsoft URL Rewrite Module for IIS 7.0 (x64)

下载地址:/downloads/?tabid=34&g=6&i=1692

安装好之后如图:

可以直接在IIS 7里面进行添加重写规则,也可以直接在中设置:

然后,访问 /article/ 就是 访问/?newid=366的结果了,无需像以前IIS 6时代一样去添加*.HTML的ISAPI的应用程序映射了。(这对使用虚拟主机的站点来说可是个福音,不用再叫管理员去帮你加设置了,自己在中可以设置这一切了)

下面还附一个重写的规则转换工具。

可以将您原有的第三方组件或apache的.htaccess规则配置,快速按规范转化为IIS7.0的使用重写规则。

posted @ 2009-03-02 17:12 RawMan 阅读(1786) | 评论 (4) | 编辑

IIS7下使用开源组件的设置

IIS 6下我们要设置伪静态的方法很简单,到IIS 7中也一样简单,只是界面不一样而已,具体看图。

把MSDNURLRewriting源码编译成,然后在项目中引用

的设置:

type="erConfigSerializerSectionHandler, URLRewriter" />

~/web/new/type/(.[0-9]*).html

~/web/?id=$1

~/web/

~/web/

<>

URLRewriter" />

URLRewriter" />

如果要伪静态*.HTML,需要更改应用程序映射(微软推出了 Microsoft URL Rewrite Module

for IIS 7.0,服务器安装了该组件的空间,可以不用进行下面的步骤,直接在中设置就行,具体看我的另外一篇博客文章)

步骤1:

在对应“站点”中的“功能视图”中双击“处理程序映射”。

步骤2:

步骤2为选择“添加脚本映射”

步骤3:

可执行文件路径一般为:

C:"WINDOWS""Framework"v2.0.50727"aspnet_,具体路径根据.NET安装路径来设置,默认一般在C盘下

到这里就设置完毕了。

//---------------------------------------------------------------------------------------

关于“请求限制”的设置说明,请参考下图:

请求限制中,映射的设置不需要勾选,(默认也是不勾选的,但检查一下为好,防止出错)

posted @ 2009-03-02 16:48 RawMan 阅读(72) | 评论 (0) | 编辑

2009年2月14日

C# Web开发 标准读写Cookies的方法 支持跨二级域和虚拟目录

在博客园看到另外一个朋友的可跨二级域操作Cookies方法,在它基础上完善了一下,现发出来

我参考的哪位朋友的文章地址是:/voswin/articles/

///

/// 添加/更新 Cookies

///

///

///

///

///

///

public static void SetUserCookies(string _domain, string _cookiepath, string _key,

string _cookiename, string _value, DateTime _expires)

{

HttpCookie cookie = s[_key];

//防止中文乱码

_value = ode(_value);

//加密

_value = t(_value);

if (cookie == null)

{

cookie = new HttpCookie(_key);

= _domain;

= _cookiepath;

s = _expires;

(_cookiename, _value);

Cookie(cookie);

}

else

{

= _domain;

= _cookiepath;

s = _expires;

if ([_cookiename] != null)

{

(_cookiename, _value);

}

else

{

(_cookiename, _value);

}

kie(cookie);

}

}

///

/// 读取Cookies

///

///

///

///

public static string GetUserCookies(string _key, string _cookiename)

{

HttpCookie cookie = s[_key];

if (cookie != null)

{

string _value = (_cookiename);

if (!OrEmpty(_value))

{

//防止中文乱码

_value = ode(_value);

//解密

_value = t(_value);

return _value;

}

else

{

return "";

}

}

else

{

return "";

}

}

///

/// 清除Cookies

///

///

///

///

public static void ClearUserCookies(string _domain, string _cookiepath, string _key)

{

HttpCookie cookie = s[_key];

if (cookie != null)

{

();

= _domain;

= _cookiepath;

s = s(-1);

kie(cookie);

}

}

加密Cookies和解密Cookies方法:

加密/解密方法 DESEncrypt

public class DESEncrypt

{

#region ========加密========

///

/// 加密

///

///

///

public static string Encrypt(string Text)

{

return Encrypt(Text, "lixyvip");

}

///

/// 加密数据

///

///

///

///

public static string Encrypt(string Text, string sKey)

{

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

byte[] inputByteArray;

inputByteArray = es(Text);

=

es(sswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));

=

es(sswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));

Stream ms = new Stream();

CryptoStream cs = new CryptoStream(ms, Encryptor(),

);

(inputByteArray, 0, );

inalBlock();

StringBuilder ret = new StringBuilder();

foreach (byte b in y())

{

Format("{0:X2}", b);

}

return ng();

}

#endregion

#region ========解密========

///

/// 解密

///

///

///

public static string Decrypt(string Text)

{

return Decrypt(Text, "lixyvip");

}

///

/// 解密数据

///

///

///

///

public static string Decrypt(string Text, string sKey)

{

try

{

DESCryptoServiceProvider des = new DESCryptoServiceProvider();

int len;

len = / 2;

byte[] inputByteArray = new byte[len];

int x, i;

for (x = 0; x < len; x++)

{

i = 32(ing(x * 2, 2), 16);

inputByteArray[x] = (byte)i;

}

=

es(sswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));

=

es(sswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));

Stream ms = new Stream();

CryptoStream cs = new CryptoStream(ms, Decryptor(),

);

(inputByteArray, 0, );

inalBlock();

return ing(y());

}

catch

{

return Text;

}

}

#endregion

}

读取当前客户机器所有的Cookies代码:

string[] keyArr = s;

for (int c = 0; c < ; c++)

{

(s[keyArr[c]].Name);

("
");

(s[keyArr[c]].ng());

("
");

(s[keyArr[c]].Value);

("
");

("
");

}

使用或自己写重载方法参考示例:

SetUserCookies(Name,

utes(miniute));

return GetUserCookies("hnce", name);

ClearUserCookies(Name, "/", "hnce");

另外提醒一下,(_cookiename, _value); 跟 [_cookiename]

= _value; 这两种方式都可以设置Cookies的值,但是Add和Set方法后,读取要使用Get方法,而Values[]赋值方式,读取要使用s[_key][_cookiename].ToString()

否则有Cookies读取不了的情况。

//下面附参考文章的部分内容说明

//------------------------------------------------------------------------

Cookie有三个属性需要注意一下:

1. Domain 域

2. Path 路径

3. Expires 过期时间

跨域操作需要设置域属性:

s("MyCookie").Domain = ""; (这里指的是泛域名)

这样在其它二级域名下就都可以访问到了, ASP 和 测试通过

虚拟目录下访问:

"/", "hnce", name, str,

我在ASP端做了下测试,.NET的没试, 如果不指定Path属性, 不同虚拟目录下Cookie无法共享

将s("MyCookie").Path = "/" 就可以了

总的写法:

s("MyCookie").Domain = "";

s("MyCookie").Path = "/"

s("MyCookie").Expires = Now + 365;

s("MyCookie")("Test") = "test";

posted @ 2009-02-14 13:42 RawMan 阅读(145) | 评论 (0) | 编辑

2009年2月12日

我的第二个智能手机 HKC G801 严重质量问题 USB接口坏后解决办法

自从搞了.NET以来,一直就对微软的产品有着特别的好奇感和追求感。于是选自己的智能手机当然是一直选WM的系统平台了。首先介绍一下我目前用过的两款智能手机:

第一个智能手机,买的多普达 595,是SmartPhone的

第二个智能手机,就是买的HKC G801,是PPC的

HKC G801是2008年11月底买的,两个月后,1月份就出现了U盘无法检测到,值得庆幸的是USB还可以以充电,加上工作忙,也就没怎么去管它。2009年,正月初5,我的G801突然就不能充电了,以为是USB线没插好,于是重新插了一下,还是不行,反复插了几下,最后,USB接口竟然进去了(里面接点和USB接口断开了)

拿到销售商,他说这也属于人为因素,要我自己负责修理,但是销售商说,只要20元左右就能修好,主要是重新焊接一下USB接口就行。和对方争执了一会,觉得没什么意思,就算了,决定还是自己找人修理算了。。。

拿到修理铺,师傅一开机,看了后,说坏了,主板也得换,因为USB接口在脱开的时候,把主板上的焊接点也一起粘了出来,也就是板子上没用焊接点了,晕~~~

20元还愿意出,换主板就算了吧,于是离开了修理店

没了USB接口,这下可麻烦了,不能充电,不能复制东西了

无奈,买了一块电池和座充

充电问题解决了,可复制文件呢?怎么办

用SD卡+读卡器? 哪多麻烦

手机有蓝牙啊?于是买了个PC电脑上用的蓝牙适配器,也就是让电脑也有蓝牙功能,然后就可以互传文件了。于是去国储电脑城25元买了一个蓝牙适配器。

但是买回来后,PC的蓝牙和手机蓝牙能相互配对,但无论我怎么设置,PC都不能向手机发文件,(手机向和PC传文件可以)我当时用的XP系统,蓝牙软件我用的IVT_BlueSoleil_5.0;我拿同事的多普达S1,奇怪了,他的可以正常传文件(PC传文件给手机,直接复制、粘贴

就可以了,并且PC机器上不需要安装微软的同步软件),而我的G801与PC蓝牙配对后,在蓝牙的文件传输服务项哪是灰色的,无法开启,只有 ActiveSync服务可以用。

后来研究了半天,原来是因为我的手机操作系统是WM6.0的原因,我同事的是WM6.1;

使用WM6.0系统的蓝牙传输,如果从PC发文件到手机,需要使用ActiveSync同步工具进行;只有WM6.1系统可以在PC机器安装好驱动的情况下,直接使用IVT_BlueSoleil的文件传输进行PC向手机传文件。

特别注意:Vista用户请不要安装蓝牙驱动和蓝牙软件,基本上VISTA都能全部识别,蓝牙插入机器后,在VISTA的控制面板里面有个“BlueTooth设备”,用它就行;Vista下的同步软件已经不是ActiveSync软件了,它被Windows Mobile Device Center取代了,所以这里一定要注意。

那我的可不可以刷成WM6.1呢?

没USB线,可以刷机么? 在网上找了许久,原来可以用SD卡刷机,爽啊。

于是去网上找G801的卡刷ROM,找了半天,只有WM6.0的卡刷ROM,没有WM6.1的卡刷ROM

唉,最后没有办法,还是选择了用ActiveSync来用蓝牙实现文件互传了。

具体如何将ActiveSync与手机设为蓝牙同步,在手机的ActiveSync帮助和PC上的ActiveSync帮助中都有说明,看帮助就会了。

大概的设置就是在PC蓝牙上设一个COM端口,用来接收文件,然后在PC上的ActiveSync中使用这个COM端口,然后在手机的ActiveSync软件的“菜单”--“蓝牙连接” 然后连接成功,就和USB线连接电脑一模一样了

最后补充:G801在质量和做工方面还是显得很随便,个人感觉不怎么样,因为我自己拆开机器过,在材质的使用和工艺上,明显档次不够。


本文标签: 蓝牙 设置 使用 接口 需要