我正在尝试将php页面与.net Web表单集成。 我刚刚复制了.php网页并粘贴到.net web应用程序
这是.net代码:
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
和Code Behind是
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("register.php");
}
但它给出了下面的例外
&#39; /&#39;中的服务器错误应用。找不到请求的http处理程序 键入&#39; POST&#39;
描述:执行期间发生了未处理的异常 当前的网络请求。请查看堆栈跟踪了解更多信息 有关错误的信息以及它在代码中的起源。
异常详细信息:System.Web.HttpException:未找到http处理程序 请求类型&#39; POST&#39;
来源错误:
第17行:protected void Button1_Click(对象发送者,EventArgs e)第18行:{第19行:
Server.Transfer的(&#34; register.php&#34);第20行:第21行:
}源文件:c:\ Users \ Vishal \ Documents \ Visual Studio 2013 \ Projects \ TestHomePage \ test3 \ WebForm2.aspx.cs第19行
堆栈追踪:
[HttpException(0x80004005):找不到请求的http处理程序 键入&#39; POST&#39;]
System.Web.HttpApplication.MapIntegratedHttpHandler(HttpContext的 context,String requestType,VirtualPath path,String pathTranslated, Boolean useAppConfig,Boolean convertNativeStaticFileModule)+898
System.Web.HttpServerUtility.Execute(String path,TextWriter writer, Boolean preserveForm)+464[HttpException(0x80004005):执行子请求时出错 register.php。]
答案 0 :(得分:0)
来自https://msdn.microsoft.com/en-us/library/caxa892w(v=vs.110).aspx(Server.Transfer文档):
“转移到的页面应该是另一个.aspx页面。例如,a 转移到.asp或.asmx页面无效。“
请尝试使用Response.Redirect("register.php");
。这将导致浏览器重定向到PHP页面。你目前正在做的是基本上要求.NET框架执行一些PHP代码。
此外,您需要确保已在服务器上安装了PHP引擎,并且所有这些都已在IIS中正确注册,否则PHP页面将无法执行。
背景:PHP和ASP.NET是两种完全不同的框架/语言。目前尚不清楚这是否是你的目标,但值得注意的是,你不能期望从一个内部转移到另一个保留所有会话数据等,它们在完全独立的环境中运行。你可以像我建议的那样从一个重定向到另一个,但是脚本不会像单个应用程序那样起作用,除非你在幕后做了很多捏造。
根据您获得的PHP / .NET数量,可能更容易将其中一种语言重写为另一种语言以便集成它们,或者定义一些正式的API以允许它们以有序的方式交换数据