浪网微博依据他名人博客的优势和依然流氓的推广,目前已经做到毫无疑问的国内微博头把交椅。其余的什么腾讯,搜狐,网易,老牌一点的做啥,嘀咕都没有如今浪网微博这般势力壮大。当然,流氓本性不改,听说负责删贴的编辑就300多人。所以依然是娱乐为主。那就娱乐吧。 公司老板想在网站上加个微博的内容,本来说是要搭建一个微博,此时我难中闪过某网站统计的程序员之十大最怕之一就是不懂编程的老板。然后我说大哥,都这么多微博了,而且微博这种东西不是我们小公司玩得起的。你不是想要微博内容吗,我给你从浪网拿过来就是。于是就这么定了。 代码参考了月光大人写的 php生成sina微博rssfeed方法。这个是asp.net版。 我的浪网微博:http://t.sina.com.cn/uspython 多联系 网页代码sinafeed.aspx <%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”sinafeed.aspx.cs” Inherits=”T_sinafeed” %><%@ OutputCache VaryByParam=”*” Duration=”60″ %><?xml version=”1.0″ encoding=”utf-8″?> <rss version=”2.0″> <channel> <title>sinarssfeed</title> <link>rssfeed</link> <description>rssfeed</description> <language>zh-cn</language> <%=StrRSS%> </channel> </rss> 后台代码: sinafeed.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Net; using System.Text; using System.Text.RegularExpressions; public partial class T_sinafeed : System.Web.UI.Page { protected string StrRSS = “”; protected void Page_Load(object sender, EventArgs e) { this.LoadData(); } private void LoadData() { /* 通过浪网的widget页面取的需要的数据,通过正则表达式 */ WebClient myWebClient = new WebClient(); //构建WenClient对象 myWebClient.Encoding = Encoding.UTF8; myWebClient.Credentials = CredentialCache.DefaultCredentials; string startflag = “<div id=\”content_all\” class=\”wgtList\”>”; //widget页面开始标签 string endflag = “<div id=\”rolldown\” class=\”wgtMain_bot\”>”; //widget页面结束标签 //通过uid获取用户wedget页面,uid即你个人页面http://t.sina.com.cn/1430466211/profile中间的部分,比如我的是1430466211 //http://v.t.sina.com.cn/widget/widget_blog.php?height=500&skin=wd_01&showpic=1&uid=1430466211 是浪网widget的链接,我们就是用它。 string temp = myWebClient.DownloadString(“http://v.t.sina.com.cn/widget/widget_blog.php?height=500&skin=wd_01&showpic=1&uid=1430466211”); //截取所需字符串 temp = temp.Substring(temp.IndexOf(startflag), temp.IndexOf(endflag) – temp.IndexOf(startflag)); //所需内容部分的正则表达式 string strReg = “<p class=\”wgtCell_txt\”>([\\S\\s]*?)</p>([\\S\\s]*?)<a href=\”(.*)\” title=\”\” target=\”_blank\” class=\”link_d\”>([\\S\\s]*?)</a>”; Regex re = new Regex(strReg, RegexOptions.IgnoreCase); MatchCollection mc = re.Matches(temp); if (mc.Count != 0) { /*字符串格式如下 <item> <title>TITLE</title> <>description<![CDATA[DESCRIPTION]]></description> <pubDate>DATE<?php echo 9-$i; ?>:04Z</pubDate> <guid>GUID</guid> <link>LINK</link> </item> */ StringBuilder rsssb = new StringBuilder(); for (int i = 0; i < mc.Count; i++) { rsssb.Append(“<item>\r\n”); rsssb.Append(“<title><![CDATA[“); //得到匹配成功的title部分,即微博正文,根据正则表达式,处于数组的第1个位置 rsssb.Append(mc[i].Groups[1].Value); rsssb.Append(“]]></title>\r\n”); rsssb.Append(“<description><![CDATA[“); //得到匹配成功的description部分,这里只是把发布时间,如:今天 15:30,放了进来,根据正则表达式,处于数组的第4个位置 rsssb.Append(mc[i].Groups[4].Value); rsssb.Append(“]]></description>\r\n”); rsssb.Append(“<pubDate>”); //这里的时间是系统的时间,你也可以根据description的时间信息把微博的发布时间switch出来,我就不列举了。 rsssb.Append(DateTime.Now.ToString(“yyyy-MM-ddTHH:mm:ss”) + “+08:00”); rsssb.Append(“</pubDate>\r\n”); //忽略guid //sb.Append(“<guid>”); //sb.Append(Guid.NewGuid().ToString()); //sb.Append(“</guid>\r\n”); //得到微博的链接 rsssb.Append(“<link>”); rsssb.Append(mc[i].Groups[3].Value); rsssb.Append(“</link>\r\n”); rsssb.Append(“</item>\r\n\r\n”); } //将构造完成的字符串赋给前台变量 this.StrRSS = rsssb.ToString(); Read the full article…

点我阅读全文...

第几回了啊,老是忘。   1.asp.net webform用“Request.PhysicalApplicationPath获取站点所在虚拟目录的物理路径,最后包含“\”; 2.c# winform用 A:“Application.StartupPath”:获取当前应用程序所在目录的路径,最后不包含“\”; B:“Application.ExecutablePath ”:获取当前应用程序文件的路径,包含文件的名称; C:“AppDomain.CurrentDomain.BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”; D:“System.Threading.Thread.GetDomain().BaseDirectory”:获取当前应用程序所在目录的路径,最后包含“\”; E:“Environment.CurrentDirectory”:获取当前应用程序的路径,最后不包含“\”; F:“System.IO.Directory.GetCurrentDirectory”:获取当前应用程序的路径,最后不包含“\”; 3.c# windows service服务中用“AppDomain.CurrentDomain.BaseDirectory”或“System.Threading.Thread.GetDomain().BaseDirectory”; 用“Environment.CurrentDirectory”和“System.IO.Directory.GetCurrentDirectory”将得到“ system32”目录的路径; 如果要使用“Application.StartupPath”或“Application.ExecutablePath ”,需要手动添加对“System.Windows.Forms.dll ”的引用,并在程序开头用“using   System.Windows.Forms”声明该引用; 4.在卸载程序获取系统安装的目录:          System.Reflection.Assembly curPath = System.Reflection.Assembly.GetExecutingAssembly();          string path=curPath.Location;//得到安装程序类SetupLibrary文件的路径,获取这个文件路径所在的目录即得到安装程序的目录; System.Diagnostics.StackFrame f = new System.Diagnostics.StackFrame(1);                 MethodBase mb = f.GetMethod();                 System.Web.HttpContext.Current.Response.Write(mb.DeclaringType.ToString()); 获取调用类的信息,可以从父类知道子类的情况

点我阅读全文...

/* brief: 改变数据库所有对象的所有者 author: 吴尔平 date: 2005/12/19 */ declare @owner varchar(255) set @owner = ‘dbo’ declare @objectname varchar(255) declare @uid int declare object_cursor cursor for select [name],uid from sysobjects where OBJECTPROPERTY (id, ‘IsMSShipped’) = 0 and (xtype like ‘%’) — 如果要指定对象的类型,参考 Transact-SQL 帮助-> sysobjects-> xtype open object_cursor fetch next from object_cursor into @objectname, @uid while(@@fetch_status=0) begin declare @uidName varchar(255) select @uidName = [name] from dbo.sysusers where uid = @uid if @uidName @owner begin –生成 ‘所有者.对象名’ 格式的字符串 set @objectname = @uidName + ‘.’ + @objectname –改变对象所有者 exec sp_changeobjectowner @objectname, @owner end fetch next from object_cursor into @objectname, @uid end close object_cursor deallocate object_cursor go

点我阅读全文...

好兄弟Samin由于工作的需要,在godaddy上购买了Deluxe Hosting – Windows – 1 year,支持多个网站绑定。所以我就托他的福,正好赶上我的主机到期,不如顺便移到国外,省得idc动不动没有任何提示就关掉我的网站,如这次《险些被低俗,小折腾了一下》和这次《有裆的地方,就有江湖。解封了》。 在迁移的过程中,出现了一个问题,“500 – Internal server error”,刚开始完全无从下手,因为没有具体的错误提示,windows主机又没有错误日志记录,所以彻底郁闷了,发了个邮件给那边客服,客服回的邮件态度倒不错,一个劲儿的道歉,只是末了来一句是你的web.config的问题。哈哈哈,我冷笑两声,这哥们/姐们说了和没说一样。从下面的文章可以看到,这个错误和web.config半点关系都没有。不排除有的确实是这个原因,但只我这次绝对不是。 下面进入正题。 现在你手上有了blogengine的项目,首先移除或注释webconfig里的这一句: simple<!–<trust level=”Medium” />—> 然后ftp上传,如果你用的也是Deluxe Hosting ,那么请传到根目录下你的文件夹。传完之后,关于怎么使用管理后台比如filemanager,怎么进行域名解析这些东西网上很多中文教程,我不多累述。关键的是问题解决,如何使网站能跑起来。这里要先说明的是godaddy在买主机的时候会让你绑定一个主域名,如果你想绑定多个站的话,主域名建议只用不常用的域名。重要的域名和文件夹一一对应解析。如下图Domain Management 主域名可以换,反正我是换过了。 下面设置文件夹权限,blogengine.net的数据文件夹app_data,给予读写权限,其余的只读就可以了 FileManager: 按说这就应该行了,因为当初我也是这么想的。欣欣然打开自己的网站,结果godaddy报了这么一个错误——”500 – Internal server error,你的网站出错,而且他是不能被显示的”,囧,不显示我怎么知道错误是什么?于是就有了给客服写邮件的一幕。这是godaddy的缺陷。 这里是最重要的一步,网络上除了一个美国哥们介绍了这种方法,我还没有找到其他能解决500错误的适合的方法。问题还是在app_data文件加上,现在到iis management,首先要做的是吧pipeline设置成classic,为什么这么做?因为这样能跑起来。这是美国兄弟的原话:[quote]Before you complete the next step, let me advise you that BlogEngine did not say to do this, but I found it to be the only way to get BlogEngine to work. So now Click on the Advance button.

点我阅读全文...

昨天在虚拟机上改程序,原来是好好的,重新发布一遍以后就出现了“设备未就绪”错误,堆栈跟踪显示System.IO.__Error.WinIOError 错误。然后开始排错,io必定是文件io操作时出现的。所以看了一下代码。这个程序是个网站后台程序,在载入页面之前要检查用户ip,用户ip是存储在服务器的appdata文件夹下面的txt文件,所以估计就是这里了。检查源代码发现原来是程序员A同学测试的时候改成了本地路径,而我的虚拟机和服务器的配置差不多,所以是要相对路径的。改掉之后就正常了。 这个错误之所以要记下来是因为以前完全没有见过。开始没想到只是文件路径这么简单的问题,所以灰头土脸的找了半天。但是其实就是这么简单。所以跟自己说一定要细心啊同学。 Technorati 标签: 设备未就绪,asp.net

点我阅读全文...

用VM虚拟系统为WINDOWS2003企业版的.系统中装有Framework1.1+2.0,做为程序调试时使用,但是安装了framework3.5后,死活也运行不了Framework1.1的程序 .提示: Server Application Unavailable 嗯,iis配置错误啊,然后同时分别注册了1.1+2.0的.还是不行. 最后无意中发现原来是应用程序池的问题.选择MSSHAREPOINTAPPPOOL就可以了. Technorati 标签: framework3.5,Server Application Unavailable

点我阅读全文...