iis 7 - 通过 PyISAPIe 在 IIS7 上部署 web.py 脚本时出现问题



我在通过PyISAPIe在IIS 7上部署 web.py 单文件API时遇到了问题。我今天要谈这个问题。

我已经成功地使用PyISAPIe在IIS 7上部署了几个Django Web应用程序。我用于 Django 站点的 Isapi.py 模块看起来类似于这样:

from django.core.handlers.wsgi import WSGIHandler as DjangoHandler
from Http.WSGI import RunWSGI
from Http import Env
import os
import sys
sys.path.append(r"C:projectsmyproject")
os.environ["DJANGO_SETTINGS_MODULE"] = "myproject.settings"
Base = "/"
Exclude = ["/media"]
Handler = DjangoHandler()
def Request():
  PathInfo = Env.PATH_INFO
  return RunWSGI(Handler, Base=Base)

但是,由于不知道如何调整上述内容以与我的 web.py 脚本一起使用,我从WSGI示例Isapi.py文件开始。添加后,我有以下文件:

from Http.WSGI import RunWSGI
from Http import Env
from md5 import md5
import imp
import os
import sys
sys.path.append(r"C:projectsotherproject")
SCRIPT_PATH = 'C:projectsotherprojectdevice_api.py'
ScriptHandlers = {
     "/": r"C:projectsotherprojectdevice_api.py",
}
def RunScript(Path):
  global ScriptHandlers
  try:
    return ScriptHandlers[Path]()
  except KeyError:
    Name = '__'+md5(Path).hexdigest().upper()
    ScriptHandlers[Path] = 
      imp.load_source(Name, Env.SCRIPT_TRANSLATED).Request
    return ScriptHandlers[Path]()
Apps = {
#  "/app/django/"  : lambda P: RunWSGI(DjangoHandler()),
#  "/app/trac/"    : lambda P: RunWSGI(TracHandler),
  "/" : lambda P: RunScript(P),
}
def Request():
  Name = Env.SCRIPT_NAME
  for App, Handler in Apps.items():
    if Name.startswith(App):
        return Handler(Name)
  raise Exception, "Handler not found."

确信有些事情是我忽略的,或者明显做错了。当我尝试在浏览器上访问脚本时,我收到来自 IIS 的 500 响应,其中包含以下详细信息:

Could not initialize interpreter
Traceback (most recent call last):
  File "C:projectspyisapieHttpIsapi.py", line 29, in 
    from md5 import md5
  File "C:Python26Libmd5.py", line 8, in 
    DeprecationWarning, 2)
  File "C:Python26Libwarnings.py", line 29, in _show_warning
    file.write(formatwarning(message, category, filename, lineno, line))
Exception: Not currently processing a request

虽然我仍在进行不同的调整等,但我不确定我需要做什么才能让它工作。在这方面的任何帮助将不胜感激。

谢谢你的时间。

PS:我有这个脚本,device_api.py,使用 mod_wsgi 部署在 Apache2 下,所以我确定脚本中的代码没有问题。

经过几天的辛苦,我终于找到了解决方案。我详细地写了下来。我将提供一个指向我放下的博客文章的链接。它的标题是"指南:使用 PyISAPIe 在 IIS7 上部署 web.py"。我希望它能帮助面临类似问题的人。

谢谢。

相关内容

  • 没有找到相关文章

最新更新