问题标签 [isapi-wsgi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4953 浏览

python - How do you deploy django applications for windows?

I'm working on a web application using isapi_wsgi and django-pyodbc. I'd like to have a way to install all dependencies and push the files out to the webserver. Unfortunately, some of these are easier said than done. In particular, handling dependencies is a pain as some of them won't install correctly even under setuptools (pywin32 is especially difficult).

Most of the tools that I see for automating this kind of stuff (fabric and capistrano) are made for use with unix-y systems. I would like to set up a continuous integration system, but that only solves part of the problem. Is there any way to make life easier for a Pythonista who's forced to use Windows/IIS?

0 投票
2 回答
1996 浏览

python - CherryPy3 和 IIS 6.0

我有一个使用 Cherrypy 框架的小型 Python Web 应用程序。我绝不是网络服务器方面的专家。

我在我们的 Ubuntu 服务器上使用 mod_python 让 Cherrypy 与 Apache 一起工作。然而,这一次,我必须使用 Windows 2003 和 IIS 6.0 来托管我的网站。

该站点可以作为独立服务器完美运行 - 在让 IIS 运行时,我简直迷失了方向。在过去的一天里,我一直在谷歌上搜索并盲目地尝试一切来让它运行。

我已经安装了网站告诉我的所有各种工具(Python 2.6、CherrpyPy 3、ISAPI-WSGI、PyWin32),并且已经阅读了我能阅读的所有文档。这个博客是最有帮助的:

http://whatschrisdoing.com/blog/2008/07/10/turbogears-isapi-wsgi-iis/

但我仍然不知道我需要什么来运行我的网站。我什至找不到任何详尽的示例或入门指南。我希望这里有人可以提供帮助!

干杯。

0 投票
1 回答
1799 浏览

python - IIS 和 ISAPI-WSGI = 非常慢

我使用isapi-wsgi在 IIS 上加载了 2 个 Django 应用程序。


这些都是服务器设置:

  • Windows Server 2003、IIS6 和 SQL Server 2005

  • Windows Server 2008 R2、IIS7.5 和 SQL Server 2008

Django 应用程序彼此完全不同。


对于每个请求,它们都需要1 到 10 秒之间的随机时间段。

与 Apache+mod_wsgi 设置的 100ms-500ms 相比,这慢得令人痛苦,所以肯定有问题。


有任何想法吗?如果我能解决这个问题,那就太好了。:)


解决了!

不要使用 django-mssql 使用 django-pyodbc 代替!!

0 投票
3 回答
45832 浏览

python - 如何在 IIS 中部署 Flask 应用程序?

谁能帮我获得一个在 IIS 6 上运行的 Flask 应用程序?我尝试使用 isapi-wsgi,但是当我访问虚拟目录地址时,我得到一个页面,上面写着“找不到指定的模块”。还有其他选择吗?

下面是我为 isapi-wsgi 编写的 Python 脚本。创建了虚拟目录,在 IIS 管理器中一切正常,但该站点无法正常工作。

0 投票
1 回答
342 浏览

windows - 使用 isapi_wsgi 在 Windows IIS 上提供 TRAC

有什么方法可以使用 isapi_wsgi 在 Windows IIS 上提供 TRAC 服务?

isapi_wsgi 适配器被认为是稳定的。它已被用于部署许多兼容 wsgi 的 Python Web 应用程序和框架,包括 Django、TurboGears、Mercurial 和 Trac。

http://code.google.com/p/isapi-wsgi/w/list

在这个页面上有一些关于服务 mercurial 的 wiki,但没有用于 TRAC。

使用 isapi_wsgi 在 Windows IIS 上提供 TRAC 的任何详细方法?

0 投票
2 回答
3736 浏览

python - 如何在 IIS 上为 Python2.7 正确安装 isapi_wsgi?

我已经在 Windows 7 的 IIS 上安装 Python 作为 CGI 应用程序。这非常简单,但我想使用 WSGI 的东西,以获得更好的灵活性。

我下载了isapi_wsgi的存档,解压缩,然后按照说明运行安装,如下所示:

这成功了:

在此处输入图像描述

然后我编写了一个包含 wsgi 胶水的 .py 模块,并尝试安装它。这失败了:

在此处输入图像描述

这是一个 COM Moniker 错误,我知道 IIS6 兼容的管理东西是基于 COM Monikers 的,这提醒我,IIS6 兼容的管理东西的 isapi_wsgi 有一个 pre-req。我运行\windows\system32\OptionalFeatures.exe并安装了它,然后重新运行 .py 模块并正确安装。

好的,太好了。现在,当我查看当前目录时,我看到了一个名为 _app1_wsgi.dll 的新 DLL,当我查看 IIS 管理器时,我可以看到一个新的 IIS vdir,以及该 vdir 中用于 '*' 的脚本映射,它映射到_app1_wsgi.DLL。都好。但!提出请求http://localhost/wsgi给我一个 500 错误。

通过一些反复试验,我看到定义我的处理程序的 .py 模块必须在 site-packages目录中。我对此感到非常惊讶。

我可以避免这种情况吗?我可以简单地将 .py 模块与生成的 .dll 文件放在同一目录中吗?或者我是否需要将我的所有 python 逻辑部署到站点包以便从 WSGI 机制运行它?

0 投票
1 回答
634 浏览

python - 将 python isapi-wsgi 模块分配给 iis 7.5 web 子应用程序

我有一个使用 isapi-wsgi 模块运行 python 网站的 IIS 7.5 Web 服务器。由于该网站绑定到端口 80,我希望 python 网站在该网站的添加应用程序下运行。

生成相应 isapi 模块的代码如下所示

不幸的是模块无法注册相应的dll导致错误

虽然我已将应用程序“dsh”添加到网站。像“网站/dsh”这样的东西也不起作用。

有没有人遇到过同样的问题并有解决方案?

0 投票
2 回答
1773 浏览

iis - Recycling an Application Pool as an Application Pool Identity

I'm creating a setup where a push to my central git repo, located on my server, automatically pushes the changes to my site folder, which is running through IIS 8 on Windows Server 2012.

This is easy enough. The following is working: I have Bonobo Git Server, a site running on IIS onto its own. I have a post-receive hook on the central repo that is managed by Bonobo. This hook then runs a batch file which pulls the changes into the repo of the site's folder. This is made possible because, naturally, the post-receive hook runs as the identity assigned to Bonobo's App Pool, namely "IIS AppPool\GitServerAppPool" and I gave that identity modify permissions on the site's folder.

So the code gets pushed and pulled fine. The problem is that the project is coded in Python and integrated into IIS using ISAPI_WSGI, and therefore there aren't any mechanisms, that I'm aware of, to reload the code without recycling the App Pool.

Giving the post-receive script permission to recycle the App Pool is proving difficult.

So, the problem is this. -The post-receive script is running as "IIS AppPool\GitServerAppPool", so it cannot restart the other app pools as doing so requires an Admin account. -Any use of RunAs, for either running appcmd or a scheduled task, doesn't work because it would require entering a password to pass UAC. -Using /savecreds on runas doesn't work because I cannot log in as an AppPoolIdentity in order to enter the password in the first place.

And so I am stuck. If any of the following are possible in any way shape or form, they should work, but I can't find a way to do them.

  1. some way of lowering the required permissions to recycle app pools.
  2. some way of including the password in the runas command (the script won't be accessible to the outside world so I can live with this)
  3. some way of manually running a command as GitServerAppPool so that I can run the batch file with /savecreds once, and not have to enter the password again

Anybody know how to do a, b or c, or have another solution?

One solution that does work is to run the git server on an app pool running as an admin account. It seems counter to the point of UAC to start giving things full Admin access rights to get around one rule on IIS security though. Of course, if I must, I will.

Thank you very much for any help or suggestions.

BTW, the reason for doing this is to give my other devs, scattered around the globe, the ability to push their changes direct to their staging servers without my interference and without actual access to the server. So manually restarting the app pool defeats the purpose.

0 投票
0 回答
531 浏览

python - IIS isapi-wsgi 应用程序中的 Cartopy 无法导入 geos_c.dll

我正在尝试在 IIS 7 下的 isapi-wsgi 应用程序中使用 cartopy。

我有许多使用 isapi-wsgi 的应用程序,所以我 100% 确定我设置 isapi-wsgi 的方式是正确的。

我也有 cartopy 在普通的 Python 控制台中正常工作,所以这也没有问题。

当代码出现时

它失败。

追溯的相关部分是

如前所述,此导入仅在 IIS 和 isapi_wsgi 下失败。

我的配置:

  • 视窗服务器 2008 R2

  • IIS 7.5

  • 安装了所有 Python 库的 Python(x,y) 2.7.6.0(32 位)

  • 来自http://www.lfd.uci.edu/~gohlke/pythonlibs/

    • 卡托比 0.10
    • 匀称1.3
    • pyshp 1.2
    • 都具有正确的位数和 Python 版本

我在 IIS 中的应用程序池配置为允许 32 位应用程序。

我还使用“Dependency Walker”调查了 geos_c.dll 的依赖关系。它表明它依赖于众所周知的“msvcr90.dll”和“msvcp90.dll”文件。我怀疑 DLL 加载失败是因为无法解决这些依赖关系,但我确实安装了“MS Visual ... Redistributable”。即使将这些 DLL 复制到各种文件夹,如 shapely 的、虚拟目录、PATH 中的不同目录等,也不能解决我的问题。

我真的被困在这里,不知道更多。有人有什么建议吗?

更新

正如@eryksun 所建议的,我尝试msvc[r|p]90.dll在 IIS 中加载文件。我使用了以下代码片段:

然后这给了我

所以在这种情况下,这确实应该是万恶之源。在普通解释器中,两个调用都成功。

更新 2

有趣的是,当我msvc[p|r]90.dll在我的机器上搜索匹配的(32 位)文件并将它们复制到我的 isapi-wsgi 进程的工作目录时,我得到了一个完全不同的错误:

甚至会出现一个弹出窗口。这似乎与这个问题有关。有任何想法吗?我在哪里可以找到这个“版本 B”的 DLL?