在IIS中的.aspx页面中使用Python

时间:2012-05-12 21:55:06

标签: asp.net python iis

简要总结:在IIS服务器上托管的网站上,独立​​的Python文件可以正确呈现,但在.aspx页面中使用Python(而不是VB)会导致错误,说明Python不受支持语言,尽管(显然)已经使用ActiveX脚本引擎注册了它。我想让Python成为支持的语言。

进一步详情: 我有一个IIS 6.1服务器上托管的网站,可以正确解释和显示.aspx文件。我希望在.aspx文件中使用Python作为语言,而不是像我一直使用VB那样。

我设法让独立的Python页面正确呈现 - 例如,网站上包含以下代码的文件:

print 'Content-type: text/html'
print

print '<HTML><HEAD><TITLE>Python Sample CGI</TITLE></HEAD>'
print '<BODY>'
print '<H1>This is a header</H1>'

print '<p>' #this is a comment
print 'See this is just like most other HTML'
print '<br>'
print '</BODY>'

source)在网络浏览器中请求时正确呈现为

  

这是一个标题
  看到这就像大多数其他HTML一样

但是,当我尝试将Python代码嵌入到.aspx页面时,如下所示:

<%@ Page Language = "Python" %>
<%
  Response.Write("Python lives in the ASP delimeters!")
%>
<br />

<script language="Python">
document.write("Python's throwing a party on the client-side!")
</script>
<br />

<script language="Python" runat="server">
 Response.Write("Python gets ready to rumble inside a server-side scripting block!")
</script>

source)我收到以下错误:

error page

(请注意,我在示例代码的第一行添加了“Page” - 无论有没有尝试过,两次都得到同样的错误)

似乎我需要将Python注册为用于.aspx文件的语言。有没有人对我可能缺少的东西有任何提示?我按照上面第一个链接中的所有步骤进行了操作(虽然我使用的是ActivePython而不是CPython),这使我能够正确地渲染.py文件的阶段,但遗憾的是这个(非常好的)答案就此结束了。

我运行C:\ Python27 \ Lib \ site-packages \ win32comext \ axscript \ client \ pyscript.py,输出“Registered:Python”,但是C:\ Python27 \ Lib \ site-packages \ win32comext \ axscript \ Demos \ client \ asp \ tut1.asp呈现为一个空白页面,而不是我希望从源代码中获得的5个越来越大的“Hello World”。我已经看到了在调试模式下运行pyscript的建议here,但我找不到如何查看输出。

我还查看了Microsoft知识库中的this page,这似乎有些过时了 - 例如,选项/选项的几个描述已经更改了名称或位置。

编辑:我已经看到了建议(here,在底部,here)声称问题出在最新版本的ActivePython上。我正式卸载了ActivePython,下载了CPython 2.7和Win32 Extensions,并再次完成了整个过程,结果相同 - .py文件正确呈现,但尝试在.aspx文件中使用Python会产生错误“Python不是支持的语言“。

2 个答案:

答案 0 :(得分:1)

我很确定你做不到。 aspx页面是编译到.NET程序集中的ASP.NET页面。有一个ASP.NET编译器可以在运行之前编译页面,它只支持.NET语言......更糟糕的是它只支持C#和VB.NET(不支持IronPython,F#等)。

我假设您认为这是可能的,因为它可能与旧的ASP Classic可能(可能因为我不知道)语言是可插入的但是ASP.NET不是这样的情况。是完全不同的技术,唯一的共同点是名称中的字母“ASP”。

答案 1 :(得分:1)

我是没有 Python人员,所以看看这些资源是否有帮助:

  1. Scott Guthrie IronPython for ASP.NET
  2. IronPython on Codeplex