2006年3月11日

刚开始使用WebPart控件遇到的一系列问题!

在VS2005+SQL Server 2005 Express 环境下,建立了一个webpart.aspx文件,然后将 WebPartManager 和WebPartZone 拖入视图页,并将 Calendar 加入WebPartZone中,接着按 F5 ,结果IE 报错(以上步骤是看了天极网上的一篇文章得来的,看来一些网上的技术文章在习得之前一定要搞清楚前提和环境),如下:

Configuration Error

Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.

Parser Error Message: The specified connectionStringName, 'LocalSqlServer', was not registered.

Source Error:

Line 349:  <providers>
Line 350:        <add connectionStringName="LocalSqlServer"
Line 351:            name="AspNetSqlPersonalizationProvider" 
                     type="System.Web.UI.WebControls.WebParts.SqlPersonalizationProvider,
                     System.Web, Version=2.0.0.0, Culture=neutral,
                PublicKeyToken=b03f5f7f11d50a3a" /> Line 352: </providers> Line 353:


Source File: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\web.config    Line: 351

看到错误信息,来源于 Web.config 文件,可是我网站根目录下的Web.config文件没有这样的内容阿,仔细看,原来是调用了本机上Framework\v2.0.50727\Config\下的Web.config。不知道如何着手,如是上MSDN,找到有关WebPart 的文章——“在 Visual Web Developer 中创建 Web 部件页(http://msdn2.microsoft.com/zh-CN/library/sk23dydw.aspx)”讲道:

先决条件:

  • 可标识各个用户的站点。如果您有一个已配置了 ASP.NET 成员资格的站点,则可以使用该站点作为本演练的起点。否则,本演练提供有关如何将站点配置为根据 Windows 用户帐户名标识用户的简介。

  • 用于创建网页的可视化设计环境。此演练使用 Visual Studio。

  • 配置过的个性化设置提供程序和数据库。Web 部件个性化设置默认情况下是启用的,它使用 SQL 个性化设置提供程序 (SqlPersonalizationProvider) 以及 Microsoft SQL Server Express Edition 存储个性化设置数据。本演练使用 SQL Server Express 和默认的 SQL 提供程序。如果安装了 SQL Server Express,则不需要进行任何配置。SQL Server Express 在安装 Microsoft Visual Studio 2005 时作为可选部分提供,也可以从 Microsoft.com 免费下载。若要使用 SQL Server 的某个完整版本,必须安装和配置 ASP.NET 应用程序服务数据库,并配置 SQL 个性化设置提供程序以连接到该数据库。有关详细信息,请参见为 SQL Server 创建和配置应用程序服务数据库

这才知道使用WebPart控件还有先决条件,但是该文章中说:如果安装了 SQL Server Express,则不需要进行任何配置。我就是这样的环境阿,为何报错呢? 不解……

继续在网上查找,发现如 SQL Server 有关,有网友说(还是外国的)在Framework\v2.0.50727\下提供一个工具——aspnet_regsql.exe,运行该工具是在SQL Server 下新建一个名为:aspnetdb的数据库,但是在 SQL Server Express下却运行不成功,这个可能是与我安装SQL有关。

没办法,来到MS 2003 Standard + SQL Server 2005 Standard   环境下, 执行aspnet_regsql.exe ,建立aspnetdb的数据库成功, 修改Web.config中关于SqlPersonalizationProvider 的部分(具体细节我就不多说了,网上相关资料也很多)。启动IE运行成功(在过程中,遇到SQL Server 用户连接登录数据库的问题,这折腾了半天,不过这些问题根据网页报错提示还是很好解决的),但是 让我不解的是:运行成功地网页中WebPart Zone 自身的“verb”动作close ,mini, restore 却没有显示,真是郁闷?

还在探索中……  

 

========================================
更新时间:2006-3-17

要更正本篇中的一个错误结论,“安装了 SQL Server Express,则不需要进行任何配置”这句话是完全正确的。在我的环境中之所以会报错,使由于我安装目录中的Web.config文件被该过了,增加了connectionStringName设置,我用该目录下的备份文件恢复,然后调试就没有任何问题。

posted @ 2006-03-11 14:55 creanlin 阅读(1152) 评论(2) 编辑

2006年3月2日

如何初始化多重数组(jagged array)?

在网上看到 一些资料, 初始化 多重数组,如下:

 //代码来自《华师SUNWEN笔记》

byte[][] scores = new byte[5][];

for (int x = 0; x < scores.Length; x++)

{

scores[x] = new byte[4];

}


但是我不理解 这段代码 到底是什么意思?

posted @ 2006-03-02 09:40 creanlin 阅读(553) 评论(1) 编辑

如何将网页表单中提交的信息自动发送到指定邮箱?

看到了.NET 提供System.Web.Mail和System.Net.Mail两个NameSpace,但是用哪一个,两者有何区别,目前不清楚,正在学习中……

=========================================
2006-3-11  更新

这个问题得到了初步解决!下面是code:

<%@ Page Language="C#" %>

<%@ Import Namespace="System.Net.Mail" %>
<%@ Import Namespace="System.Net" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void Page_Load(object sender, EventArgs e)
    {
        string mailfrom = Request.Form["txtFrom"];
        string mailto = Request.Form["txtTo"];
        string mailsub = Request.Form["txtSub"];
        string mailbody = Request.Form["txaBody"];
       
       
        if ( !Page.IsPostBack )
        {
            try
            {

                Mess(mailfrom, mailto, mailsub, mailbody);
               
                ErrorMessage.Text = "succeed!";
                Info.Text  = "From:"+mailfrom;
                Info1.Text = "To:" + mailto;
                Info2.Text = "Sub:" + mailsub;
                Info3.Text = "Content:" + mailbody;
            }
           catch
           {
                ErrorMessage.Text = "Sorry,Error!";
           }
        }
         
    }
   
    protected void Mess(string from,string to,string subject,string body)
    {
       
        SmtpClient Client = new SmtpClient("mail.zcom.com.cn");
        Client.DeliveryMethod = SmtpDeliveryMethod.Network; //用到了System.Net 命名空间
        Client.Credentials = new NetworkCredential("yourname@domain","password");
       
        MailMessage Message = new MailMessage(from,to,subject,body);
        Message.BodyEncoding = System.Text.Encoding.UTF8;
        //Message.BodyEncoding = System.Text.Encoding.Unicode;
        //Message.SubjectEncoding = System.Text.Encoding.Unicode;
       
        Client.Send(Message);
             
        Message.Dispose();
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>邮件测试</title>
</head>
<body>
    <form id="form1" runat="server"  >
        <div>
            <asp:Label ID="ErrorMessage" runat="server"></asp:Label><br />
            <asp:Label ID="Info" runat="server"></asp:Label><br />
            <asp:Label ID="Info1" runat="server"></asp:Label><br />
            <asp:Label ID="Info2" runat="server"></asp:Label><br />
            <asp:Label ID="Info3" runat="server"></asp:Label>
        </div>
    </form>
</body>
</html>

从Form 中获得信息,然后显示发送是否成功!但是发送中文,收到的都是乱码,如果有知道解决办法的朋友请告知,感谢!

posted @ 2006-03-02 09:38 creanlin 阅读(4435) 评论(6) 编辑