ceocio

天才白痴梦
随笔 - 60, 评论 - 555, 引用 - 41

导航

工具

每月存档

广告



访客

Url ReWriting 示例

 

这个由微软提供的组件已经编译好了的,无需自己再写代码,直接用就行:)

对于Web.Config设置一下:

<configuration>节最开始加上:

  <configSections>
    
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  
</configSections>

<configuration>节中加上:

<RewriterConfig>
 
<Rules>
   
<RewriterRule>
   
<LookFor>~/News,(d{4}),(d{1,2}),(d{1,2}),(d{1,9}).aspx</LookFor>
   
<SendTo>~/news_view.aspx?newsid=$4</SendTo>
  
</RewriterRule>
  
<RewriterRule>
   
<LookFor>~/(d{4})/(d{2})/Default.aspx</LookFor>
   
<SendTo><![CDATA[~/news_view.aspx?year=$1&month=$2]]></SendTo>
  
</RewriterRule>
 
</Rules>
  
</RewriterConfig>

  
<system.web>节加上:
 

 <httpModules>
  
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
 
</httpModules>

处理一下链接:

news.aspx

private void Page_Load(object sender, System.EventArgs e)
  
{
   
// 在此处放置用户代码以初始化页面
   DataTable dt=new DataProvider().GetNewsToIndexPage(1);
   
//格式化URL
   UrlFormat formats=new UrlFormat();

   lbNews.Text 
= "<ul>";
   
if (dt.Rows.Count>0)
   
{
    
int counter=0;
    
while (counter < dt.Rows.Count)
    
{
     lbNews.Text 
+= "<li><a href="" + formats.NewsUrl((DateTime)dt.Rows[counter]["NewsPubTime"],Convert.ToInt32(dt.Rows[counter]["NewsID"])) + "" target="_blank">" + dt.Rows[counter]["NewsTitle"].ToString() + "</a></li>";
     counter
++;
    }

   }

   
else
   
{
    lbNews.Text
="<li style="color:red">暂无内容</li>";
   }

   lbNews.Text 
+= "</ul>";
   dt.Clear();
   dt.Dispose();
   
  }

UrlFormat.cs

public class UrlFormat
 
{

  
public UrlFormat()
  
{
  }


  
public virtual string NewsUrl(DateTime dt,int NewsID)
  
{
      
return GetUrl("News,{0},{1},{2}," + NewsID + ".aspx",dt.Year,dt.Month,dt.Day);
  }


  
protected virtual string GetUrl(string pattern, params object[] items)
  
{
   
return string.Format(pattern,items);
  }


 }



格式化为:
news,2004,8,13,123.aspx

指向:
news.aspx?参数=some parameter

作用:可以隐藏真实Url,爽!

相关Dll文件下载:http://bbs.mvpcn.net/PostAttachment.aspx?PostID=405

posted on 2004-08-13 20:13:00 by ceocio  评论(10) 阅读(4792)

Our T-shirt 修改稿

posted on 2004-08-05 23:08:00 by ceocio  评论(15) 阅读(1994)

Our T-shirt

也没为博客堂贡献过什么,随便画个方案吧,这是最初稿,颜色那些可以斟酌,如果需要的话设计一下体恤的后面。(请注意,该随笔图片可能随时会修改)

posted on 2004-08-05 15:44:00 by ceocio  评论(12) 阅读(1950)

How To Troubleshoot : When Use Chinese Characters,Display The General Error 404

描述:

当在URL和文件名中使用中文字符时候,IIS报404错误,找不到页面,检查程序目录结构,发现一切正常。

解决方法:

方法一:
Regedt32.exe
①HKLM\System\CurrentControlSet\Services\InetInfo\Parameters\FavorDBCS = 0。
②重启计算机。
方法二:
在程序中自行控制

'转换双字节字符为合法的URL传输字串  
function  getUrlEncodel(byVal  Url)  
   
Dim  i,code  
   getUrlEncodel
=""  
   
if  trim(Url)=""  then  exit  function  
   
for  i=1  to  len(Url)  
           code
=Asc(mid(Url,i,1))  
           
If  code<0  Then  code  =  code  +  65536  
       
If  code>255  Then  
               getUrlEncodel
=getUrlEncodel&"%"&Left(Hex(Code),2)&"%"&Right(Hex(Code),2)  
           
else  
               getUrlEncodel
=getUrlEncodel&mid(Url,i,1)  
           
end  if  
   
next  
end  function

方法三:
IE-internet选项-高级-将“始终以utf-8方式发送”选项去掉。

说明:

以此上排序决定该方法的优劣性,最好采用方法一。

posted on 2004-08-03 14:43:00 by ceocio  评论(0) 阅读(1870)

How To Troubleshoot : Unable To Upload File When Filesize More Than 200 KB

问题描述:

asp无组件上传程序无法上传较大的文件“Request 对象 错误 'ASP 0104 : 80004005'”,(大概大于100kb就不行),但是原先在2000 server中可以上传5m左右的文件。

解决方法:

在IIS属性中选中“允许直接编辑配置数据库”,然后。在服务里关闭iis admin service服务
找到windows\system32\inesrv\下的metabase.xml编辑其中的ASPMaxRequestEntityAllowed 把他修改为需要的值,默认为204800,即200K
然后重启iis admin service服务

把它修改为51200000(50M)或者更大。

亦可使用Metabase Explorer,参考:
http://www.microsoft.com/downloads/details.aspx?FamilyId=56FC92EE-A71A-4C73-B628-ADE629C89499

适用:

windows 2003    IIS 6.0

posted on 2004-08-03 14:42:00 by ceocio  评论(1) 阅读(1652)

How To Troubleshoot : SMTP Missing In IIS

在IIS中已经安装SMTP,运行一段时间后SMTP服务无故消失。

IIS 5.0:

在桌面右击“网络连接”,选择“属性”,在弹出的窗口中右击“本地连接”或者你当前激活的网络连接,选择“属性”。
在弹出窗口中选择“安装”,单击“服务”选项,然后点击“添加按钮”,选择“Microsoft网络的文件和打印机共享”进行安装,如果该服务已经安装,则尝试一下卸载重装。
(该方法同时适用于SMTP和NNTP服务消失的情况。)

IIS 6.0:

运行:regsvr32 %systemroot%\system32\inetsrv\smtpsnap.dll(其中%systemroot%是你的Windows2003安装路径。)
同时亦可尝试IIS 5.0处理办法。

在各个版本均可通过卸载/重装IIS解决,但是此种方法并不推荐。

posted on 2004-08-03 02:48:00 by ceocio  评论(0) 阅读(1431)

How To Troubleshoot : Error processing SSI file.

IIS6.0对于SSI进行了一些改进,以前IIS5.0的一些程序迁移过后可能无法运用。

一个经常的出现问题是出现如下错误:

处理 SSI 文件时出错 - Error processing SSI file

经过测试,以下做法会导致这个错误:

1、服务器物理路径使用中文名。
2、包含文件中使用中文名。
3、包含文件不存在。
4、被包含的文件再次包含使用中文名的文件。

该错误在Unicode编码时依旧,属于IIS设计问题。

解决方法:

对于使用SSI的站点物理和URL地址都全部使用英文。

posted on 2004-08-03 02:47:00 by ceocio  评论(0) 阅读(1960)

How To Reinstall IIS

如何重新安装IIS,有的时候IIS出现严重错误,比如metabase坏掉,又没有备份....

一般的做法,直接在控制面板添加删除程序中卸载IIS重装。

这样并不是保险的做法,很多人在重装IIS后问题依旧。

所以建议在任何情况下都用以下步骤重新安装IIS:

1、把IIS卸载。
2、把 %windir%\system32\inetsrv 删除。
3、把%windir%\iisX.log删除,X 是IIS版本。
4、把 \inetpub\ 目录删除。
(以上操作可以在安全模式中进行。)
5、重装IIS。

当然,我写本文并不是让你在IIS出现问题立即重装,具体问题还要看实际的情况嘛:)

posted on 2004-08-02 21:12:00 by ceocio  评论(0) 阅读(2260)

How To Troubleshoot In IIS

有不少朋友经常询问IIS的问题,比如说拒绝服务、500错误等等,也有不少朋友热心的回答这些问题:“重启服务器;重装IIS;重装系统....”。

那么如何才是解决IIS问题的关键呢?

据我总结,有5点:

1、查看日志事件,大多数错误都会有记录,通过日志可以找出事件的根源。
2、善用工具,比如说FileMon,可以侦测出大多数权限问题。IISState,用来调试IIS。
3、对于站点的问题,可以用性能监视器监视相关,性能监视器对ASP/ASP.Net都提供了相关的计数器,可以检查内存泄漏、CPU瓶颈等等问题。
4、善用KB,这个就不用多说了吧,大多数问题都可以找到,不过要看你的E文水平。
5、更新补丁。

还有一点,并不是问题不可解决,只是我们没有找到解决办法而已,对于IIS设计者的抱怨,我觉得都是不好的。其实,大多数IIS问题,都是由于使用者自身处置不当而造成的。

posted on 2004-08-02 17:08:00 by ceocio  评论(1) 阅读(2499)

Powered by: Joycode MVC Blogger System