请找到有关如何集成此现有应用程序的分步指南。此外,您还找到了与asp.net应用程序集成的解决方案,因为将此BlogEngine网站项目与asp.net Web应用程序集成涉及一些复杂性。您可以按照以下说明进行操作。
获取Web项目文件夹
现在您已经下载了zip文件,您需要将其解压缩。这可以通过一堆不同的实用程序和一堆不同的方法来完成。
如果选择Web项目下载,则新解压缩的文件夹包含您要使用的Web项目。如果您下载源代码,则该Web项目将被掩埋。该Web项目位于BlogEngine.NET文件夹下,然后位于BlogEngine文件夹下。
将Web项目加载到Web服务器上
现在您有了Web项目文件夹,然后将这些文件和文件夹复制到Web服务器中。这通常涉及FTP,但根据您的情况,它甚至可能需要便携式存储设备(例如USB闪存驱动器)。
将文件夹设置为.NET 4.0应用程序
关于这一点,没有太多要说的。如果您具有直接的IIS访问权限,则需要创建一个应用程序。如果使用的是托管提供程序,则需要使用其控制面板来实现此目的。它应该是一个标准选项,但是如果找不到它,则可能需要联系您的主机提供商以获取支持。
为App_Data文件夹添加写权限
这是一个经常被遗忘的步骤。如果您错过了它,您会在尝试进行更改时立即注意到。您需要授予应用程序对App_Data文件夹的写权限。同样,您的托管服务提供商可能有一个控制面板,允许您执行此操作。如果没有,您可能需要联系您的主机提供商以获取支持。
设置写许可权可能涉及多达3个步骤:
使用IIS管理工具或主机提供商的控制面板,将文件夹设置为“可写”。 如果您可以直接访问文件系统,请确保运行BlogEngine.NET应用程序池的帐户(在XP / 2003上通常为“ASPNET”,在Vista / 2008上通常为“网络服务”)具有对物理服务器的写权限。夹; 解压缩Web文件夹后,所有文件均启用了只读属性。关闭App_Data文件夹以及所有文件和子文件夹的属性。 导航到网页
好的,现在您可以导航到该网站并查看操作方法。例如,如果您将网站安装到本地计算机上进行测试,则可以导航到
http://localhost/default.aspx
。您也可以使用IIS MMC管理单元编辑默认文档以显示为default.aspx。如果执行此操作,则无需指定页面名称即可直接导航到
http://localhost/
。如果一切顺利,默认博客页面将为您打招呼。
登录并设置用户名最后一步是向下滚动并在右侧找到登录链接。单击登录,然后登录以下信息。
用户名:admin
密码:admin
登录后,您将在右侧看到一个新菜单。单击用户。
为自己创建一个新用户。您选择的用户名就是您的显示名。有关更多信息,请参见“用户管理”页面。
删除管理员帐户。您不希望所有人都可以登录到您的博客,是吗?
最后,注销,然后使用您自己创建的用户帐户重新登录。
上面的安装用于,如果我们想将博客作为独立站点运行,这种情况在我们的情况下特别少见,**因此让我们将博客包含在我们的站点中,这样我们就不必重定向到另一个站点即可到博客或从博客到主要网站。**在此处输入代码
将Blog Engine网站包括到我们自己的项目中:在名为Blog的根目录中或您要命名的目录中创建一个文件夹。将整个Blog Engine .net网站复制到该文件夹内,但App_Global Resources,App_Code,Web.Config,robots.txt,web.sitemap和Global.asax除外。 或根据需要将App_Code文件夹重命名为BlogApp_Core。因为App_Code文件夹不能与Web应用程序一起使用,因为它们与网站一起使用。现在,将此文件夹复制到项目的根目录。 合并或将App_Global Resources robots.txt和web.sitemap复制到项目的根目录。 在Web应用程序中添加Blog Engine.core项目。构建Blog Engine.core,并将来自Web项目的引用添加到“BlogEngine.Core.dll”。 Web.Config的更改
如果您已经有一个web.config,则将Blog的Web.Config与之合并,否则只需将其复制到根目录即可。转到页面部分的行:
更改为:
<add assembly=”BlogWap” namespace=”Controls” tagPrefix=”blog”/>
其中
BlogWap
是Web项目名称。转到该行:
<add key="BlogEngine.VirtualPath" value="~/" />
更改为:
<add key="BlogEngine.VirtualPath" value="~/Blog/" />
其中
Blog
是我们之前创建的文件夹名称。
如果要使用SQL As数据库,我们必须进行一些其他更改
将SQL用作数据库的更改在Sql的setup / SQLServer内部执行安装程序,以自动生成表。如果要使用ASP.NET成员资格,则可以删除
be.Users
和
be.roles
表。
根据您的数据库的
name="BlogEngine"
更改连接字符串。
更改行:
<blogProvider defaultProvider="XMLBlogProvider">
至:
<blogProvider defaultProvider="DbBlogProvider">
更改行:
<membership defaultProvider="XMLMembershipProvider">
至:
<membership defaultProvider="SqlMembershipProvider">
更改行:
<roleManager defaultProvider="XMLRoleProvider" enabled="true" cacheRolesInCookie="true">
至:
<roleManager defaultProvider="SqlRoleProvider" enabled="true" cacheRolesInCookie="true">
右键单击项目,然后单击转换为Web应用程序。 现在您会认为我们已经完成了从网站到Web应用程序的转换,但是请等待Blog Engine .NET 2.0版本存在一些问题,同时将其包含在我们的项目中,现在我们必须编辑项目中的Files才能使其正常工作。
在Web项目级别搜索~/admin
并将其替换为~/Blog/admin
。Blog是我们的文件夹名称。 与~/widget
~/themes
和~/pics
相同。 打开文件~/blog/pages/settings.aspx.cs
并转到BindCultures()
方法中的第262行,并将以下行更改为:
字符串路径= Server.MapPath(Util.AbsoluteWebRoot +“App_GlobalResources /”); 至:
string path = Server.MapPath("~/App_GlobalResources/");
打开BlogEngine.Core
项目并转到Utils.cs
。现在在这里搜索CodeAssemblies()
函数,我们需要更改组装:
var assemblyName =“__code”; 将此行更改为:
var assemblyName = "WebProjectName";
和:
else
{
if (!IsMono)
{
assemblyName = "App_Code";
}
至:
else
{
if (!IsMono)
{
assemblyName = "WebProjectName";
}
转到功能:
AddFolderJavaScripts()
更改
var fileEntries = Directory.GetFiles(HostingEnvironment.MapPath("~/" + pathFromRoot))
.Where(file =>
!scriptsAddedDuringRequest.ContainsKey(file) &&
file.EndsWith(".js", StringComparison.OrdinalIgnoreCase) &&
!file.EndsWith("-vsdoc.js",
StringComparison.OrdinalIgnoreCase)).ToList();
至:
var fileEntries = Directory.GetFiles(HostingEnvironment.MapPath("~/Blog/" + pathFromRoot))
.Where(file =>
!scriptsAddedDuringRequest.ContainsKey(file) &&
file.EndsWith(".js", StringComparison.OrdinalIgnoreCase) &&
!file.EndsWith("-vsdoc.js",
StringComparison.OrdinalIgnoreCase)).ToList();
现在检查Blog/admin
文件夹中的文件,在这里您必须检查名称空间,实际上它们已经弄乱了名称空间,在以后的发行版中可能还不错。您还必须检查字母的大小写,例如Admin和admin。解决所有名称空间问题。 进行全局搜索~/App_Code
并将其替换为~/Blog_App_Code
或您命名为App_code
文件夹的任何名称。 生成项目并立即运行,您的应用程序应该可以正常运行。转至Blog尝试添加Blog删除Blog等待嘿,发生了什么事您无法删除Blog哦,天哪,这是怎么回事,所以寻找解决方案,终于解决了问题: )。 所以这是解决方案。实际上删除是通过我们从js内部调用的asmx进行的,因此我们将必须检查js文件中的路径,即是否具有指向asmx文件的正确路径,最好的方法是在您的网站中添加以下几行.master和admin.master
<script type="text/javascript">
var fullBaseUrl = '<%=ResolveUrl("~") %>';
</script>
并在有问题的admin.js文件中使用此
fullBaseUrl
变量。并且我们还必须在处理程序部分的Web.config中添加以下两行,以使这些asmx文件正常工作:
<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
现在是时候检查每件事是否正常,因此继续构建该项目并浏览它的正常运行,终于我们做到了,但是经过严格的测试之后,我们仍然遇到一些问题,经过一段长时间的间隔:(这是媒体文件,我们可以选择将视频文件上传到帖子和页面,上传效果很好,但是当您转到该帖子时,将不会有视频一个黑匣子,哦,我再次陷入困境,但是嘿,我们是软件工程师,永远不会害怕问题,只要对自己有信心就可以继续前进,所以让我们探索一下,因为我们知道如果有问题,就可以找到解决方案:)哦,哇解决方案
转到
Blog/admin/EditPage.aspx.cs
哦,他们已经在此处硬编码了路径,所以这就是问题所在
搜索功能:
BtnUploadVideoClick(object sender, EventArgs e)
更改:
var folder = "~/" + mediaFolder + "/";` to `var folder = "~/Blog/" + mediaFolder + "/";
我们必须再次进行相同的操作才能发布,您会在
Blog/admin/post/Add_entry.aspx.cs
的
BtnUploadVideoClick(object sender, EventArgs e) {
中找到它
再次构建解决方案并浏览
嘿,终于,我们的Blog完美运行了:)
我们还可以添加Facebook和twitter,以便通过twitter和facebook分享帖子。我刚刚将一个文件附加到
BlogApp_Code/Extensions
文件夹中,以实现此功能,然后构建了项目,对其进行了浏览,当我们转到您的网站时,魔术就在那里发布后,我们将在您发布的帖子下方显示Facebook和Twitter分享选项。
我们还可以通过遵循一些规则在Blog Engine .net中创建自己的主题。因此,恭喜我们完成了将BlogEngine.net与我们网站中的外观集成到我们网站中的工作。现在,将帖子添加页面上传到Blog,分享您的想法,将Blog用于您的业务,并尽享所需的乐趣:)。
结论作为ASP.NET开发人员博客引擎,.NET是最好的开放源代码博客工具,只需几分钟即可轻松安装。播放代码并使其根据您的要求工作。只是需要注意一些要点才能使其在我们的项目中起作用。
参考书目 http://www.upfromthesky.com/blog/post/2009/01/30/Integrate-BlogEngine-145-into-an-exisitng-website-%28VSNET-Website-Project%29.aspx http://blogengine.codeplex.com/documentation 请参考这些网站进行自定义。创建自己的主题:
http://blogengine.codeplex.com/wikipage?title=ThemeCreation 对于创建我们自己的扩展:
http://blogengine.codeplex.com/wikipage?title=Extensions&referringTitle=Documentation 创建我们自己的控件:
http://blogengine.codeplex.com/wikipage?title=CreateNewControls&referringTitle=Documentation