单击asp按钮时尝试打开.php页面

时间:2017-05-25 09:35:16

标签: c# php asp.net

我正在尝试将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。]

1 个答案:

答案 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以允许它们以有序的方式交换数据