博易用户交流群
博易用户之间交流、解决使用中的问题、经验等话题。
vhost QQ 群:9293345
验证信息:BlogYi.net
博易主机
提供经博易认证的虚拟主机产品及各种域名
vhost

九九数据合作伙伴
销售一 销售二
日历
<<  七月 2008  >>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
BlogEngine.NET
ASP.NET
Windows Server
Visual Studio.NET
Office Access
SQL Server
CodePlex
51aspx.com

1.修正了URL重写某处链接无效的错误,感谢编程汉报告此错误

2.修正了Access的文章、分类的更新异常,感谢Fanne报告此错误

附重新编译后的库:BlogEngine.Core_v1.5_080510.zip (241.01 kb)

补丁方法:替换原文件。

安装包及源码包已更新。

当前评分 4.1 , 共有 11 人参与

  • Currently 4.090909/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

在 web.config 文件的 <appSettings> 节点集中修改 <add key="BlogEngine.FileExtension" value=".aspx" />。默认为".aspx"后缀,可以自定义您希望的后缀(如 .do/.go/.html 等等)。如按照此法配置之后会出现404错误,则还需要配置虚拟目录的映射,具体方法请看下面。

在“控制面板”-“管理工具”-“Internet 信息服务”选择您的网站,右键“属性”。

在主目录选项卡点“配置...”。

添加一条映射,点“添加”。

其中“可执行文件”参照“.aspx”映射的可执行文件路径来填。“扩展名”填上一步web.config中设置的文件类型名。特别要注意的是“检查文件是否存在”前的钩要去掉。这样配置过就行了。

当前评分 4.0 , 共有 5 人参与

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

这是一个单独使用的小程序,如果您是有经验的站长,您可以把他当作一个 .net 2.0 的探针来使用。这个小程序不仅实现了探针的基本功能,还提供了一些高级功能,操作非常简单。

功能1.查看服务器及当前虚拟目录信息(其中的物理路径对于配置博易的 Access 数据库有用)
功能2.查看客户端信息
功能3.在线压缩文件(可用于网站备份)
功能4.在线解压(可用于安装程序,有了他,安装博易等程序就方便多了,您只需要上传压缩包,然后在线解压即可省去逐一上传每一个文件所耗费的事件了)

本程序 Bin 目录需上传至虚拟目录的根目录。

下载:BlogYi ASP.NET Utility Tool Pagev1.0.zip (50.89 kb) (需要 .net 2.0 支持)

当前评分 5.0 , 共有 1 人参与

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

博易的运行是不需要专门的数据库的,它的数据默认全部存放在一组XML里面。为了满足用户更多的需求,博易又支持了扩展数据库。这就意味着您可以将多种数据库用来支持博易的运行。下面我们给出如何将博易运行于 Access 之上的解决方案。

1.修改 Web.config 的 <BlogEngine> 节点中 blogProvider 节点,将其值设为“OleDbBlogProvider”。

2.修改 Web.config 的 <connectionStrings> 节点中 <add name="OleDbBlogEngine" ... />节点,将 connectionString 的值设为 Access 的连接字符串。

注释:
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=<database path>"
<database path> 为 Access 数据库文件在服务器上的物理路径,例如:
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\wwwroot\BlogEngine.Web\App_Data\BlogYi.mdb"
为了防止数据库被人恶意下载,我们建议您将数据库文件存放在App_Data目录下。

只需完成以上两个步骤即可!

当前评分 3.7 , 共有 3 人参与

  • Currently 3.666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

博易向您提供这篇文章是建立在您已经对ASP.NET中的概念有比较深入了解的基础之上的。您可能需要了解.NET的委托、事件等概念。

博易给插件的扩展提供了两种主要的事件接口。Post.Serving事件是与调用文章相关的事件接口;Post.CommentServing事件是与调用评论相关的事件接口。订阅这两个事件可以在调用文章和调用评论时调用您编写的程序代码。这个调用与系统的钩子(Hook)相似。完成一个完整的插件扩展只需要4个步骤!

下面以开发一个防图片盗链的插件扩展为例说明。

第一步:
按照如下形式构造一个类,之所以要规定形式,是为了便于插件管理系统统一管理。

[code:c#]
[Extension("防止本站图片显示在其他网站之上")]
public class StopLeechers
[/code]

第二步:
为这个类创建一个无参构造函数,这个函数将在整个系统启动时被调用。

[code:c#]
public StopLeechers()
{
  ImageHandler.BeforeServing += new EventHandler<ImageHandler.FileHandlerEventArgs>(StopReferrers);
}
[/code]

第三步:
现在,我们已经订阅了事件。下面则需要实现该事件的逻辑,也就是您希望添加的代码。

[code:c#]
void StopReferrers(object sender, ImageHandler.FileHandlerEventArgs e)
{
  HttpContext context = HttpContext.Current;
  if (context.Request.UrlReferrer != null)
  {
    if (context.Request.UrlReferrer.Host != context.Request.Url.Host)
    {
      context.Response.StatusCode = 403;
      context.Response.End();
    }
  }
}
[/code]

以上代码的作用是检查URL请求是否来自本地主机,如果不是则返回一个403号错误请求并中止请求。

第四步:
最后要做的就是将经过上面步骤所完成的类放到App_Code目录下。系统将自动激活并启用该类!

此外,博易还提供了如下事件接口:
ImageHandler.BeforeServing - 调用图片前触发
ImageHandler.ImageServing - 调用图片中触发
ImageHandler.BadRequest - 错误请求图片时触发
FileHandler.BeforeServing - 调用文件前触发
FileHandler.FileServing - 调用文件中触发
FileHandler.BadRequest - 错误请求文件时触发
Post.Saved - 保存文章时触发
Post.Rated - 对文章评级时触发
Post.BeforeAddingComment - 发表评论前触发
Post.CommentAdded - 发表评论时触发
Post.BeforeRemovingComment - 删除评论前触发
Post.CommentRemoved - 删除评论时触发
Post.Serving - 调用文章时触发
Post.CommentServing - 调用评论是触发
Page.Saved - 保存页面时触发
BlogSettings.Changed - 更改博客设置时触发
CategoryDictionary.Saved - 分类保存时触发

另附以上示例完整源代码。StopLeechers.zip (741.00 bytes)

当前评分 3.0 , 共有 4 人参与

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

前言
博易的模板机制基于DotNet 2.0的模板页实现,简易而强大。您几乎只用修改3-5个文件就可以制作出一套个性主题模板了!本文为教程基础篇,仅介绍实现最简单的模板所必要的知识。要深入了解ASP.NET并达到透彻理解博易模板机制还请通过Google搜索相应的知识条目。

了解
每一套模板都在BlogEngine.Web\themes目录中以文件夹的方式存放。修改Name模板则只需修改Name文件夹内的相关页面,需要增加自己的模板时,我们建议您先把现有的模板文件夹复制一份并重命名,然后再基于此进行修改工作,这样可以减少很多的工作量。修改模板可能需要您具备ASPX控件的一些概念性的知识,一旦概念熟悉了,博易的模板制作将是一件比任何现有系统的模板制作都要简单的事情!

基础知识
必备工具
对于ASP.NET新手,我们建议您使用VisualStudio.Net 2005,因为它将帮助您梳理好文件结构。此外您还可以配以专业的网页设计、图像处理工具,Dreamweaver、Fireworks、Photoshop等。对于高手,您可以根据自己习惯开选择工具,如果并不需要修改程序的话,您甚至可以仅使用记事本加之一些辅助编辑工具即可。

涉及主题模板的文件类型
.aspx 页面文件,通过URL可访问。
.ascx 用户控件,组成页面的一个部分。
.master ASP.NET 2.0所特有的母板页,用于提供页面通用部分作为每个页面的模板。
.cs 程序员文件,可以和.aspx和.ascx或.master等文件关联实现动态页面。
.css 样式表文件,用于页面的布局、风格的修饰和呈现。

制作博易主题模板不得不了解的几个文件(在themes目录下的相应的主题模板目录中),下面以Mobile主题模板(图1)为例。

图1
site.master和site.master.cs文件组。这应该是构成主题模板最重要的文件了,它与.css文件配合使用,用于整个页面框架的内容、布局的呈现。博易的几乎每一个页面都要引用该文件组。其中site.master包含页面框架的内容(图2)以及对用户自定义控件的引用(图3A\B)。

图2


图3-A


图3-B

图3-B中<asp:ContentPlaceHolder ID="cphBody" runat="server" />是母板页中的占位符,比如A页面套用了该母板页,访问A页面时,页面将呈现出母板页,并以A页面的内容(<asp:Content ID="Content1" ContentPlaceHolderID="cphBody" Runat="Server">…</asp:Content>)替换母板页中的<asp:ContentPlaceHolder ID="cphBody" runat="server" />处内容。例如tag.aspx页面中:

<asp:Content ID="Content1" ContentPlaceHolderID="cphBody" Runat="Server">
  <div id="contact">
    <div id="divForm" runat="server">
      <h1>标签</h1>
      <blog:TagCloud ID="TagCloud1" runat="server" />     
    </div>
  </div>
</asp:Content>

PostView.ascx和CommentView.ascx文件组。分别是构成文章列表和评论列表的控件。
<%@ Control Language="C#" … Inherits="BlogEngine.Core.Web.Controls.PostViewBase" %>
此行截取自PostView.ascx首行控件的定义,表示该页面所依赖的页面类为BlogEngine.Core.Web.Controls.PostViewBase。CommentView.ascx中的类似。

结束语
理解博易的主题模板就是这么简单,此文全为抛砖引玉,欢迎有动手能力强的朋友以此操作一下,写一个案例教程。

当前评分 4.4 , 共有 5 人参与

  • Currently 4.4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

博易的运行是不需要专门的数据库的,它的数据默认全部存放在一组XML里面。为了满足用户更多的需求,博易又支持了扩展数据库。这就意味着您可以将多种数据库用来支持博易的运行。下面我们给出如何将博易运行于 SQLServer 之上的解决方案(已通过 SQLServer2000 测试)。

1.创建一个 SQLServer 数据库,运行这个 SQL 脚本(下载:BlogYi.sql (12.31 kb))。

2.修改 Web.config 的 <BlogEngine> 节点中 blogProvider 节点,将其值设为“MSSQLBlogProvider”。

3.修改 Web.config 的 <connectionStrings> 节点中 <add name="BlogEngine" ... />节点,将 connectionString 的值设为 SQLServer 的连接字符串。

只需完成以上三个步骤即可!

当前评分 4.0 , 共有 4 人参与

  • Currently 4/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

很多邮箱为了抵制垃圾邮件都设置了邮件收发过滤。163等邮箱就会拒发自己发往自己的邮件。而博易的邮件功能是将你的邮件帐户提供给任何人使用,发往你自己的邮箱,这样一来,163等邮箱就会收不到这样的邮件。下面提供解决办法:

在 BlogEngine.Web 目录下的 contact.aspx.cs 文件中,第 79 行的 mail.From = new MailAddress(txtEmail.Text, txtName.Text); 中的“txtEmail.Text”改为你在后台配置的电子邮件地址(用引号引起来)即可。如: mail.From = new MailAddress("abc@163.com", txtName.Text);

当前评分 5.0 , 共有 2 人参与

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5