Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在IIS 7.5中,PHP和ASP.Net能否在同一个网站内同时运行?_Php_Asp.net_Iis_Iis 7_Iis 7.5 - Fatal编程技术网

在IIS 7.5中,PHP和ASP.Net能否在同一个网站内同时运行?

在IIS 7.5中,PHP和ASP.Net能否在同一个网站内同时运行?,php,asp.net,iis,iis-7,iis-7.5,Php,Asp.net,Iis,Iis 7,Iis 7.5,我们网站的一部分是用PHP完成的,一部分是用ASP.Net完成的。我们刚刚用安装了IIS 7.5的Windows server 2008 R2安装了一个新的web服务器 我知道IIS 7+支持PHP,但PHP和ASP.Net是否可以在IIS中的单个网站内并行运行,或者我是否必须为PHP页面设置一个网站,为ASP.Net页面设置一个网站?是的,这不会有问题。甚至一些Windows共享主机也提供PHP计划-ASP,PHP可以在Windows机箱上使用。只要他们完全分开,彼此不依赖。例如,使用查询字符

我们网站的一部分是用PHP完成的,一部分是用ASP.Net完成的。我们刚刚用安装了IIS 7.5的Windows server 2008 R2安装了一个新的web服务器


我知道IIS 7+支持PHP,但PHP和ASP.Net是否可以在IIS中的单个网站内并行运行,或者我是否必须为PHP页面设置一个网站,为ASP.Net页面设置一个网站?

是的,这不会有问题。甚至一些Windows共享主机也提供PHP计划-ASPPHP可以在Windows机箱上使用。只要他们完全分开,彼此不依赖。例如,使用查询字符串
(即file.php?var=1&var2=bla)
当您需要将这些变量转移到ASP文件时,事情会变得一团糟,反之亦然

因此,只要这两个系统彼此完全独立,那么它就可以正常工作


您还可能发现与cookies会话不兼容。这些也可以通过,但不容易。

是的,你可以在同一个网站上使用这两个。由于文件扩展名映射到特定的外部进程,因此它们被独立调用。通过在IIS中实现通配符映射,您甚至可以使用Asp.Net来保护带有FormsAuthentication的.php文件(我知道6/7版本有此功能,但不确定5版本)。在它们之间混合数据是很棘手的,因为它们将有单独的外部进程,从而有单独的会话。大多数Cookie在这两个站点上都是可读的,但安全Cookie不会。

您应该能够在同一站点上同时运行这两个站点,但请确保站点的AppPool运行“经典”ASP.NET池配置。默认的AppPool通过ASP.NET路由所有内容,您不希望在PHP页面中使用它


除此之外,你应该没事。查询字符串、文件和后端数据库将是在页面之间共享数据的最佳方式

是的,PHP可以无缝地实现到ASP.NET 3.5/4.0中

转到(或)并下载最新版本的Phalanger。安装到VisualStudio中,瞧

Phalanger–用于.NET的PHP编译器

欢迎使用Phalanger–功能齐全的PHP运行时和编译器 .NET/Mono框架。Phalanger是现代的开源实现 与大量现有PHP代码兼容。在里面 此外,Phalanger为PHP应用程序开发人员提供了许多新的功能 可能性;从提高性能和使用现代 环境,以利用无缝独特的.NET集成

ASP.NET和PHP支持

使用您的选择开发、部署和轻松管理Web应用程序 关于语言。从ASP.NET到PHP,IIS7提供了一个强大的 灵活的Web服务器环境,适用于世界上最流行的Web服务器 应用程序

(来源:)

我尝试将一个
test.php
文件(内容:
)放入现有的ASP.NET网站(使用real server at)。我知道ASP.NET和PHP是一起工作的

阅读更多内容:


您可以在同一个站点上运行这两个应用程序,但除非您设置某种消息传递系统或共享存储,否则将无法相互通信。它们基本上是性质完全不同的应用程序

另一种可能是从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();
发件人:


是的,您可以,但请注意:

如果你的“根”上有一个wordpress,它下面的文件夹中有asp.net应用程序

(例如),, 如果您在wordpress中关注permalinks的“urlrewrite”,那么如果您试图在apsnetapp1中配置“通配符处理程序”,则可能会遇到问题

为避免出现问题,wordpress根应用程序的web.config也必须具有以下设置:

    <location path="." inheritInChildApplications="false"> 
    <system.webServer>
...
    </system.webServer>
</location>

...

否则,您的通配符处理程序将永远不会引发,因为root中的index.php将捕获您对url的所有请求,如:

应该可以同时使用这两个处理程序,但是您可能需要使用显式扩展,例如.aspx和.php。您能详细说明使用显式扩展的含义吗?我知道您可以在IIS中的Windows上运行php,但我的问题是您能否在IIS中的同一网站上运行php和ASP.Net。问题是在同一网站上同时运行ASP.Net和php,不只是在同一个盒子上。因为它们共享一个应用程序池和一个IIS工作进程,所以在这种情况下它们不是“完全分离”的。文件扩展名是否映射到同一个处理程序取决于IIS应用程序池配置。您不希望使用默认的应用程序池,因为在该配置中,ASP.NET将处理所有文件扩展名。不过,默认的应用程序池应该可以工作。@Cylon Cat-这些映射在处理程序映射中显式处理,它们指向单独的ISAPIModules。如果您使用相同的AppPool,这无关紧要,因为内存对象将由模块在池中隔离。Asp.Net不处理所有扩展。下面的页面讨论IIS集成管道(默认应用程序池)和经典模式之间的区别,并参考IIS在每种模式下如何处理非Asp.Net文件以及如何配置@Joel Etherton嘿,先生,正如您所说,我们可以在一个网站上同时使用asp.net和php,同样,我们也可以在一个网站上同时使用jsp和asp.net吗?@VikasVerma:我没有直接使用它的经验,但基于我对jsp工作原理的理解(请注意,这是有限的),这当然是合理的。它们有自己的处理程序映射,因此即使它们占用类似的文件系统目录,也应该由不同的解析引擎处理。它不需要处于经典模式-我有几个解决方案在集成模式下运行,没有问题。先生……刚刚解决了我的IIS集出现问题的3个小时的搜索