1

简要总结:在托管在 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>

来源)我收到以下错误:

错误页面

(请注意,我在示例代码的第一行中添加了“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 的建议,但我找不到如何查看输出。

我还查看了 Microsoft 知识库上的此页面,该页面似乎有些过时 - 例如,选项/选择的一些描述已更改名称或位置。

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

4

2 回答 2

1

我很确定你不能那样做。aspx 页面是编译成 .NET 程序集的 ASP.NET 页面。有一个 ASP.NET 编译器在页面运行之前对其进行编译,它只支持 .NET 语言……更糟糕的是它只支持 C# 和 VB.NET(不支持 IronPython、F# 等)。

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

于 2012-05-12T23:04:03.097 回答
1

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

  1. 用于 ASP.NET 的Scott Guthrie IronPython
  2. Codeplex上的 IronPython
于 2012-05-13T04:13:13.847 回答