fung的天空
记录IT技术探索的点滴
posts - 9,  comments - 16,  trackbacks - 0

上周遇到一个很奇怪的问题,记录如下:

A,B2数据结构完全一致的数据库,A为分发数据库,B为订阅数据库;
因为程序新加功能,把B备份到本地进行数据结构修改操作,修改完毕后,发现程序无法插入数据;报PK主键重复;使用sql语句插入,也是如此;
google之,说是2005中的一个bug;当时就把表删除后,重建来解决问题了;

后来想了一下,可能是订阅库采取了某种保护导致的,于是对A数据库进行还原,数据结构修改后,插入数据,成功。

记录如上。

posted @ 2008-04-29 23:24 fung 阅读(271) 评论(0) 编辑
        两台计算机中,一台计算机名称为w2003-1,IP地址为202.206.197.190,另一台名为w2003-2,IP地址为202.206.197.191。

  规划网络负载平衡群集使用的IP地址为202.206.197.195,规划网络负载平衡群集完整的计算机名称为cluster.heinfo.edu.cn。你需要在heinfo.edu.cn域中注册此主机名称并将地址设置为202.206.197.195。如果你没有DNS,可以在需要访问网络负载平衡的客户机(包括网络负载平衡主机)上编辑%systemroot%\system32\drivers\etc目录下的hosts文件,添加一条信息“202.206.197.195 cluster.heinfo.edu.cn”,即可解决DNS域名解析的问题。

  当正式应用时,客户机只需要使用cluster.heinfo.edu.cn或IP地址202.206.197.195来访问服务器,网络服务平衡会根据每台服务器的负载情况自动选择202.206.197.190或者202.206.197.191对外提供服务。

  网络负载平衡的实现过程如下:

  在实现网络负载平衡的每一台计算机上,只能安装TCP/IP协议,不要安装任何其他的协议(如IPX协议或者NetBEUI协议),在网络属性中,“网络负载平衡”也不能被选择,这可以从“网络连接属性”中查看。

  ①先进入第一台计算机,以管理员身份登录,从“管理工具”中运行“网络负载平衡管理器”,用鼠标右键单击“网络负载平衡群集”,从出现的菜单中选择“新建群集”,进入“群集参数”界面。

 

  在“IP地址”后面输入规划的群集参数地址202.206.197.195,在子网掩码处使用默认值,在“完整Internet名称”后面输入cluster.heinfo.edu.cn(也可以是其他的名称,但输入的DNS名称必须与输入的IP地址相符)。

  如果允许远程控制,请选中“允许远程控制”,并在“远程密码”和“确认密码”处输入可以进行远程控制的密码。

  ②点击“下一步”按钮,进入群集IP地址页面后再进入“端口规则”界面,点击“下一步”按钮,进入“连接”界面。

 

  ③在“连接”界面的“主机”栏中输入当前计算机的名称w2003-1,然后点击“连接”按钮,将在“对配置一个新的群集可用的接口”框中显示出连接的计算机的网卡及IP地址。选择与群集IP地址同一网段的地址(用于对外提供网络应用的网卡),然后点击“下一步”按钮,进入设置“主机参数”界面,点击“完成”按钮,系统将自动开始网络负载平衡群集的配置。几分钟后,网络负载平衡群集配置完成。

  ④打开第二台计算机,并以管理员的身份登录进入。

  注意:在网络负载平衡中的每个节点上,管理员账号的用户名和密码最好一致。

  ⑤然后,在第一台计算机上,用鼠标右键单击新创建的群集,从出现的菜单中选择“添加主机到群集”。将出现“连接”界面,在“主机”中输入第二台计算机的计算机名称,点击“连接”按钮,将会在“对配置群集可用的接口”下面显示出连接的计算机上的网络配置。选择202.206.197.191的网卡,进入主机参数界面,点击“完成”按钮,即可返回网络负载平衡管理器。

 

  ⑥关闭网络负载平衡管理器后再进入网络负载平衡管理器。用鼠标右键单击“网络负载平衡群集”,从出现的菜单中选择“连接到现存的”,将会弹出“连接”界面。

  输入第一台计算机的名称,点击“连接”按钮,在“群集”下面将列出群集的IP地址,选择此IP地址,并点击“完成”按钮,连接群集即可完成。

  以后,如果这两台服务器不能满足需求,可以按以上步骤添加第3台、第4台计算机到网络负载平衡中以满足要求。

  三、用IIS服务验证网络负载平衡
  网络负载平衡配置好后,为了实现某项具体的服务,需要在网络负载平衡的计算机上安装相应的服务。例如:为了实现IIS网站的负载平衡,需要在相应的网络负载平衡的计算机上安装IIS服务。

  安装网络负载平衡的应用程序时,不需要特别的方法,只需要在配置好网络负载平衡的计算机上安装相应的服务即可。但是为了让每个用户在通过网络负载平衡访问到不同的计算机时,能够访问到一致的数据,需要在网络负载平衡的每台计算机上保持数据的一致性。举例来说:实现了两个节点的IIS的网络负载平衡,为了保证两个网站内容的一致性,除了这两个IIS服务器的配置相同外,相应的网站数据必须一致。

  为了检验网络负载平衡,我们可以通过IIS来进行验证,其他的一些应用如终端服务、Windows Media服务与IIS的应用相类似。

  在网络负载平衡的每一台计算机上安装IIS服务,方法如下:

  在“添加/删除程序”中,点击“添加Windows组件”,进入Windows组件向导,双击“应用程序服务器”,进入“应用程序服务器”。

 

  选中ASP.NET、Internet信息服务及应用网络COM+访问后,即可开始安装IIS服务。

  安装之后,进入第一台计算机的inetpub\wwwroot目录,新建一个文本文件,输入以下内容:

  <html>

  This win2003-1

  </html>

  然后将它保存为default.htm文件。这个网页在IE中将显示如下内容:

  This w2003-1

  在第二台计算机的inetpub\wwwroot目录,新建一个文本文件,并输入下面的内容:

  <html>

  This win2003-2

  </html>

  这个网页在IE浏览器中将显示“This w2003-2”,随后将这个文件以default.htm名称保存。

  然后,在其他计算机上的IE浏览器中键入http://cluster.heinfo.edu.cn,将会显示为“This win2003-1”或“This win2003-2”,根据网络的负载,网络负载平衡会自动转发到第一台计算机或第二台计算机。为了验证效果,你可以在浏览的时候,拔掉第一台计算机的网线或拔掉第二台机器的网线,将会发现浏览到的将是不同内容。当然,我们只是测试的时候,为了验证网络负载平衡的效果,两个网站的内容不一致,而在正式应用的时候,网络负载平衡群集的每个节点计算机的内容将是一致的,这样,不管使用那一个节点响应,都保证访问的内容是一致的。

posted @ 2007-08-20 16:28 fung 阅读(799) 评论(0) 编辑
给cookie的Expires赋值,发现读出值都是0001-1-1 0:00:00;跟踪调试发现不是转换问题,cookie读取后默认值就是0001-1-1 0:00:00。解决方法,设置过期项目:

 
HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies["User"];
        
if (cookie != null)
        
{
            cookie[
"UserName"= _actors.ActorTitle;
            cookie[
"UserID"= _actors.ActorID.ToString();
            cookie[
"DateTime"= DateTime.Now.AddDays(30).ToString();
            System.Web.HttpContext.Current.Response.SetCookie(cookie);
        }

        
else
        
{
            cookie 
= new HttpCookie("User");
            cookie.Values.Add(
"UserName", _actors.ActorTitle);
            cookie.Values.Add(
"UserID", _actors.ActorID.ToString());
            cookie.Values.Add(
"DateTime", DateTime.Now.AddDays(30).ToString());
            System.Web.HttpContext.Current.Response.AppendCookie(cookie);
        }
       
posted @ 2007-05-06 22:48 fung 阅读(907) 评论(0) 编辑
服务器莫名其妙的报这个错,之前一直正常,从google获取解决方案,解决之,记录如下:

 1. Open the ""<OracleHome>/network/admin/listener.ora" file in the host,and you will see:
   SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
   )
  2. Add the following lines after the 7th line in the above
            (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)  
       (SID_NAME = ORACLE)
      )
  3. At last the content of the file become to the following section:
 SID_LIST_LISTENER =
   (SID_LIST =
     (SID_DESC =
       (SID_NAME = PLSExtProc)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
       (PROGRAM = extproc)
     )
     (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)  
       (SID_NAME = ORACLE)
      )
   )
  4. Save the file and restart the TNSListener service in the host. That's OK!
posted @ 2007-03-30 10:25 fung 阅读(33391) 评论(14) 编辑
引用 http://urlrewriter.net的源代码实现UrlReWriter;建议大家不要去官方网站下载了,到处都是google ads 的广告,估计写代码的那哥们穷疯了。

这个不需要IIS上配置,引用相关dll后只要在web.config中配置即可。配置代码:

<?xml version="1.0"?>
<configuration>
  
<configSections>
    
<section
            name
="rewriter"
            type
="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
  
</configSections>
  
<rewriter>
    
<register logger="Intelligencia.UrlRewriter.Logging.DebugLogger, Intelligencia.UrlRewriter" />
    
<if url="~/tags/(.+)" rewrite="~/tagcloud.aspx?tag=$1" />
    
<if url="~/test" rewrite="~/tagcloud.aspx?tag=1" />
    
<!-- same thing as <rewrite url="/tags/(.+)" to="/tagcloud.aspx?tag=$1" /> -->
  
</rewriter>
  
<appSettings/>
  
<connectionStrings/>
  
<system.web>
    
<httpModules>
      
<add
                type
="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"
                name
="UrlRewriter" />
    
</httpModules>
    
<compilation debug="false" />
  
</system.web>
</configuration>

dll最好使用release版本的。
posted @ 2007-01-17 16:06 fung 阅读(513) 评论(0) 编辑
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Sockets;
using System.Text;
public partial class _Default : System.Web.UI.Page 
{
    
protected void Page_Load(object sender, EventArgs e)
    
{

    }

    
protected void Button1_Click(object sender, EventArgs e)
    
{
        
string _r = Whois(TextBox1.Text.Trim());
        
        Response.Write(_r.Replace(
"\r\n","<br>"));
    }


    
/// <summary>
    
/// 域名注册查询
    
/// </summary>
    
/// <param name="domain">输入域名,不包含www</param>
    
/// <returns></returns>

    public static string Whois(string domain)
    
{
        
if (domain == null)
            
throw new ArgumentNullException();
        
int ccStart = domain.LastIndexOf(".");
        
if (ccStart < 0 || ccStart == domain.Length)
            
throw new ArgumentException();
        
string ret = "";
        Socket s 
= null;
        
try
        
{
            
string cc = domain.Substring(ccStart + 1);
            s 
= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            s.Connect(
new IPEndPoint(Dns.Resolve(cc + ".whois-servers.net").AddressList[0], 43));
            s.Send(Encoding.ASCII.GetBytes(domain 
+ "\r\n"));
            
byte[] buffer = new byte[1024];
            
int recv = s.Receive(buffer);
            
while (recv > 0)
            
{
                ret 
+= Encoding.ASCII.GetString(buffer, 0, recv);
                recv 
= s.Receive(buffer);
            }

            s.Shutdown(SocketShutdown.Both);
        }

        
catch
        
{
            
throw new SocketException();
        }

        
finally
        
{
            
if (s != null)
                s.Close();
        }

        
return ret;
    }

}

posted @ 2007-01-17 15:19 fung 阅读(776) 评论(0) 编辑
摘要: 有一堆硬币,你现在蒙着眼,看不到,摸也摸不出朝上那面是正面还是反面。你只知道现在朝上面是正面的硬币有13个,你怎么分成两堆硬币,让这两堆硬币中,朝上是正面的硬币个数是一样的。1/全部竖起来2/挑13个出来作为a,剩下的是b堆;然后把这13个全部翻过来,这样a,b两堆中朝上的就都一样了。阅读全文
posted @ 2006-07-26 13:47 fung 阅读(150) 评论(0) 编辑
摘要: //定义相关动作指令函数function url1() {getURL("http://www.x.com", "_blank");}function url2() {getURL("http://www.x1.com", "_blank");}function url3() {getURL("http://www.x2.com", "_blank");}//定义菜单对象expandmenuvar...阅读全文
posted @ 2006-07-07 14:01 fung 阅读(1850) 评论(0) 编辑
摘要: 视频转换的方法找了不少,最后整个过程记录如下:转换环境: window2003 转换工具: FFMpeg 转换步骤: 1/ 从 http://ffdshow.faireal.net/mirror/ffmpeg/下载最新版本的 FFMpeg.exe (才知道.7z也是种压缩格式) 2/ 解压缩到本地c:\FFMpeg. 3/ 转换视频文件Command Line格式:转换视频: ffmpeg.exe...阅读全文
posted @ 2006-07-03 14:07 fung 阅读(2544) 评论(2) 编辑
昵称:fung
园龄:5年7个月
粉丝:0
关注:0

<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

搜索

 
 

常用链接

随笔分类

随笔档案

最新评论

阅读排行榜

评论排行榜

推荐排行榜