将ASP.NET应用程序部署到WordPress网站上

6
我在一所大学工作,我们的主要网站有一个基于ASP.NET的课程信息搜索功能,我创建了这个功能。它变得很受欢迎,我们公司面向企业培训的网站也要求在他们的网站上使用相同的系统。我不参与任何一个网站的日常运营,但我知道他们的网站是使用WordPress制作的。我能否在某些页面中嵌入一些ASP.NET代码?有没有相关文章可以提供参考? 编辑: 实际标记中出现的ASP.NET代码很少,主要是一些asp:Literals,我特意这样做是为了隐藏大部分代码,以免在意外删除时给自己带来麻烦。 编辑2: 有人回复说可以将其作为Web服务来完成,比如在主页上显示搜索框并在下方显示结果。这种方法可行吗?

嵌入是什么意思?是为了让人们能够阅读吗?还是在页面被查看时执行代码? - Dominic Rodger
所以代码会被执行,例如在主页上的搜索框中。 - PeteT
10个回答

9

很久以前,我问了这个问题,并创建了一个不太理想的iframe解决方案。现在我找到了一个很棒的WordPress插件,叫做iframe-less。

http://wordpress.org/extend/plugins/iframe-less-plugin/

基本上,你只需要提供一个URL,它就会直接将该页面的内容嵌入到你的WordPress页面中。到目前为止,它似乎运行得非常好。


6
我有类似于该帖主的需求。我维护一个运行在ASP.NET / SQL上的CRM和企业网站,以及一个独立的WordPress php公司博客。使用WordPress一年后,我们希望像在WordPress中一样编辑公司网站上的静态内容,因此我正在寻找可能的ASP.NET/WordPress混合设置。
我听到过关于“Phalanger”的好消息:http://www.php-compiler.net它是.NET框架的PHP语言编译器,您可以在.NET中运行PHP代码。
在这个帖子中还发现你可以在同一个IIS Web中拥有PHP和ASP.NET,这是另一个合理的解决方案。如果我有任何声誉(我在这里是新手),我会支持RickNZ的建议。

5
你可以在ASP.NET应用程序中创建一个Web服务,然后编写WordPress插件,在WordPress页面中读取该服务并显示它。

听起来很有趣,所以我编辑了我的帖子,看看别人的想法。Web服务不是我以前做过的事情,现在只是在研究,据我所知,在ASP.NET方面实现服务相对容易。但我不知道如何在WordPress页面上放置SOAP标记。 - PeteT

3

这不是理想的解决方案,但我的解决方案涉及使用IFrame,它们仍然在HTML 5规范中(实际上它们有一些新属性),所以我认为没问题。基本上,我在WordPress中创建一个带有IFrame的页面,并在其onload上使用一些JavaScript代码,根据内容大小自动调整IFrame的大小,使用下面的代码(IFrame称为frame,宽度为100%)。

function autoIframe(){
    try
    {
        var page_height = document.getElementById('frame').contentWindow.document.body.scrollHeight;
        document.getElementById('frame').height = page_height+60;
    }
    catch (err)
    {
        window.status = err.message;
    }
}

这段代码会在第一次加载内容时进行调整大小,如果内容发生更改,则需要以某种方式调用它。我的解决方案是每次进行搜索时,使用parent.autoIFrame()从innerpage调用该方法。

p.s. 如果iframe和外部页面来自同一个域(没有跨站点脚本),则JavaScript才能正常工作。


1

WordPress使用PHP和MySQL。我已经成功地在Windows 2008下使用IIS 7安装并运行它。IIS 7中的新CGI功能也带来了相当不错的性能。

当然,您可以在同一台服务器上运行一个单独但相关的基于ASP.NET的站点。

您还可以运行混合的ASP.NET + PHP站点。IIS根据URL的扩展名将传入的请求定向到特定的HttpHandler,因此没有理由不能混合使用*.php和*.aspx。

事实上,您还可以做一些事情,比如编写一个基于.NET的HttpModule,与PHP/IIS站点集成,以执行诸如日志记录、集中式cookie管理、HTTP头“调整”等操作。

如果您想在*.php文件中放置ASP.NET控件,那就完全不同了。为此,您需要编写一个HttpHandler,它知道如何解析这样的文件。要么这样,要么只使用iframes....


不需要那么复杂。只需为IIS网站启用PHP和ASP.NET即可。 - bzlm
你说的“那么复杂”是什么意思? - RickNZ
我觉得petebob796在Web开发方面还比较新手,你可能应该加上一个警告,对于那些甚至不知道不能简单地将一些asp.net代码放入WordPress页面并运行PHP的人来说,这是一种相当困难和高级的尝试。 - MGOwen

1

简短回答:不行,不容易实现。WordPress是PHP编写的,你不能在PHP页面上放置一些.NET代码。

长篇回答:如果你真的很想这样做,并且值得花费时间和精力,那么可以通过使用一些已经建议的策略来解决,例如:将ASP.NET部分托管在Windows服务器上(或使用Mono),并在WordPress页面中显示它。

请记住,这不是常见的设置,可能比创建或使用某种WordPress插件更困难。


2
实际上,您可以使用Phalanger(http://www.php-compiler.net/),将整个PHP WordPress网站作为本地.NET应用程序运行。然后,您可以直接从PHP代码调用.NET方法并进行集成。 - Jakub Míšek

1

0

WordPress是一个LAMP(Linux Apache MySQL PHP)应用程序,通常在Linux服务器上运行。我认为你不能将ASP.Net集成到WordPress中。但当然你可以从WordPress提供链接到ASP.Net应用程序。


0

不,这样行不通。你不能在由WordPress提供的页面上使用ASP.NET。你可以在同一个网站中使用ASP.NET,例如通过让某些目录或某些页面提供ASP.NET内容,而网站的其他部分仍然提供WordPress内容。

然而,如果你希望使用的ASP.NET代码非常简单,为什么不用PHP呢?WordPress使用的是PHP,它与ASP.NET非常相似。


0

我可以在我的主机(Dinamo.net.tr)上同时使用Asp.Net和Wordpress,而不需要使用任何插件或iframe。

它们真的可以一起工作,你只需要上传你的Asp.Net C#文件,并同时安装Wordpress即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接