首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过web.py在IIS7上部署PyISAPIe脚本的问题

通过web.py在IIS7上部署PyISAPIe脚本的问题
EN

Stack Overflow用户
提问于 2011-05-12 08:10:52
回答 1查看 867关注 0票数 1

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

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

代码语言:javascript
复制
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:\projects\myproject")
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文件开始。添加后,我有以下文件:

代码语言:javascript
复制
from Http.WSGI import RunWSGI
from Http import Env
from md5 import md5
import imp
import os

import sys
sys.path.append(r"C:\projects\otherproject\")

SCRIPT_PATH = 'C:\projects\otherproject\device_api.py'
ScriptHandlers = {
     "/": r"C:\projects\otherproject\device_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个响应,其中包含以下详细信息:

代码语言:javascript
复制
Could not initialize interpreter

Traceback (most recent call last):
  File "C:\projects\pyisapie\Http\Isapi.py", line 29, in 
    from md5 import md5
  File "C:\Python26\Lib\md5.py", line 8, in 
    DeprecationWarning, 2)
  File "C:\Python26\Lib\warnings.py", line 29, in _show_warning
    file.write(formatwarning(message, category, filename, lineno, line))
Exception: Not currently processing a request

虽然我仍然在玩不同的调整之类的,但我不太确定我需要做些什么才能让它发挥作用。在这方面的任何帮助都将是非常感谢的。

谢谢您抽时间见我。

PS:我有这个脚本,device_api.py__,在Apache2下使用mod_wsgi__进行部署,所以我确信脚本中的代码没有什么问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-14 13:28:01

经过几天的努力,我终于找到了解决办法。我把它写得很详细。我将提供一个链接到我的博客帖子,我已经把它放下。名字叫"指南:使用web.py在IIS7上部署PyISAPIe“。我希望它能帮助那些面临类似问题的人。

谢谢。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5975131

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档