我们网站的一部分是用PHP完成的,我们网站的一部分是在ASP.Net中完成的。我们刚刚安装了一台安装了IIS 7.5的Windows Server 2008 R2的新Web服务器。
我知道IIS 7+支持PHP,但PHP和ASP.Net可以在IIS中的单个网站中并行运行,或者我是否必须为PHP页面和一个Web设置一个网站ASP.Net页面的网站?
答案 0 :(得分:22)
您应该能够在同一站点中运行,但请确保该站点的AppPool运行“经典”ASP.NET池配置。默认的AppPool通过ASP.NET路由所有内容,您不希望PHP页面使用它。
除此之外,你应该没事。查询字符串,文件和后端数据库将是在页面之间共享数据的最佳方式。
答案 1 :(得分:9)
是的,你可以在同一个网站上使用它们。由于文件扩展名映射到特定的外部进程,因此它们是独立调用的。你甚至可以使用Asp.Net通过在IIS中实现通配符映射来保护带有FormsAuthentication的.php文件(我知道6/7有这个,不确定5)。在它们之间混合数据非常棘手,因为它们将具有单独的外部进程,从而分离会话。大多数cookie都可以在两者中读取,但安全的cookie不会。
答案 2 :(得分:3)
是的,你可以,但请注意:
如果您的" root"以及其下的文件夹中有asp.net应用程序
(例如http://root.com/aspnetapp1/), 如果您按照these suggestions关于" urlrewrite"对于wordpress中的固定链接,如果您尝试配置"通配符处理程序"在apsnetapp1。
为避免出现问题,wordpress root app的web.config也必须具有以下设置:
<location path="." inheritInChildApplications="false">
<system.webServer>
...
</system.webServer>
</location>
否则,您的通配符处理程序将永远不会引发因为来自root的index.php将捕获您对url的所有请求,如:http://root.com/aspnetapp1/api/ *
答案 3 :(得分:1)
是的,PHP可以无缝地实现到ASP.NET 3.5 / 4.0
中转到http://phalanger.codeplex.com/(或http://www.php-compiler.net/)并下载最新版本的Phalanger。安装到Visual Studio中,瞧!
Phalanger - .NET的PHP编译器
欢迎使用Phalanger - 全功能的PHP运行时&amp;编译器 .NET / Mono框架。 Phalanger是现代开源实现 PHP,与大量现有PHP代码兼容。在 此外,Phalanger为PHP应用程序开发人员提供了许多新功能 可能性;从提高性能和使用现代 环境,利用无缝的独特.NET集成。
答案 4 :(得分:0)
是的,这不是问题。甚至一些Windows共享主机也提供PHP计划 - Windows Hosting PHP 。
答案 5 :(得分:0)
ASP 和 PHP 。只要它们完全分开并且不依赖于彼此。例如,使用查询字符串(i.e file.php?var=1&var2=bla)
当需要将这些变量传输到ASP文件时,事情会变得混乱。反之亦然。
只要这两个系统彼此完全独立,那么它应该可以正常工作。
您可能还会发现与 Cookie 和会话不兼容。那些也可以通过,但不容易。
答案 6 :(得分:0)
您可以在同一个网站上运行,但除非您设置某种邮件系统或共享存储空间,否则无法相互通信。它们基本上是完全不同性质的应用程序。
另一种可能性是从PHP调用您的.NET代码:
用C#编写的一段代码:
string javascript = "";
Microsoft.Ajax.Utilities.Minifier m = new Microsoft.Ajax.Utilities.Minifier();
Microsoft.Ajax.Utilities.CodeSettings settings = new Microsoft.Ajax.Utilities.CodeSettings();
settings.OutputMode = Microsoft.Ajax.Utilities.OutputMode.SingleLine;
settings.PreserveFunctionNames = false;
string minified = m.MinifyJavaScript(javascript, settings);
在PHP上看起来像这样:
$minifier = netMinifier::Minifier_Constructor();
$settings = netCodeSettings::CodeSettings_Constructor();
$csssettings = \ms\Microsoft\Ajax\Utilities\netCssSettings::CssSettings_Constructor();
$settings->OutputMode(\ms\Microsoft\Ajax\Utilities\netOutputMode::SingleLine());
$settings->PreserveFunctionNames(FALSE);
$settings->QuoteObjectLiteralProperties(TRUE);
$result = $minifier->MinifyStyleSheet($css, $csssettings, $settings)->Val();
自:
http://www.drupalonwindows.com/en/blog/calling-net-framework-and-net-assemblies-php