我想运行三个单独的Python Flask URL,让我们称它们为test,staging和production。我想要一个IIS网站来提供这三种不同的应用程序。
所以我创建了一个网站,在这个网站下创建了三个IIS应用程序,并将这些文件夹的根文件夹分别设置为d:\ execution \ test,d:\ execution \ staging,d:\ execution \ prod。
在这些文件夹中,每个文件夹都是hello_world.py,看起来像这样
import datetime
from flask import Flask
app = Flask(__name__)
@app.route('/test')
def hello_world():
return 'Hello World (Test)!' + datetime.datetime.now().strftime("%Y/%m/%d %H:%M:%S")
if __name__ == '__main__':
app.run(debug=True)
显然,根据需要将路由更改为/ test,/ staging和/ prod 每个文件夹还包含一个类似于此
的web.config<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<defaultDocument>
<files>
<add value="hello_world.py" />
</files>
</defaultDocument>
<directoryBrowse enabled="true" />
</system.webServer>
<system.web>
<identity impersonate="false" />
</system.web>
<appSettings>
<add key="PYTHONPATH" value="D:\Execution\Test" />
<add key="WSGI_HANDLER" value="hello_world.app" />
</appSettings>
</configuration>
再次根据需要更改PYTHONPATH
主网站root有一个web.config,里面写着
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="Python Flask" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python34\python.exe|C:\Python34\Lib\site-packages\wfastcgi.py" resourceType="Unspecified" />
</handlers>
</system.webServer>
</configuration>
这是python处理程序。如果我把它拿出来,我可以从网站和三个应用程序子文件夹/ URL中提供基本的HTML页面。如果我把它重新放入,我什么都得不到,甚至只是一个基本的HTML页面。 IIS抛出一个泛型&#34;无法找到该网页。找不到HTTP 404&#34;当我尝试导航到任何东西时,无论是目录浏览,index.html还是我上面提到的python flask应用程序的http://server:port/test应用程序路径。
有没有人对我做错了什么有任何建议?
答案 0 :(得分:0)
我认为问题的根源在于您的网站指定了基于#!/usr/bin/perl -w
use strict;
use warnings;
use feature qw(switch say);
my $LZE = shift(@ARGV);
# die "Usage: $0 Partition\n" if @ARGV < 1;
my $used_space = `df -h $LZE |awk 'FNR == 2 {print \$5}'`;
given ($used_space) {
chomp($used_space);
when ($used_space lt '75%') { print "OK - $used_space of disk space used by $LZE\n"; exit(0); }
when ($used_space eq '75%') { print "WARNING - $used_space of disk space used by $LZE\n"; exit(1); }
when ($used_space gt '75%') { print "CRITICAL - $used_space of disk space used by $LZE\n"; exit(2); }
default { print "UNKNOWN - $used_space of disk space used by $LZE\n"; exit(3); }
}
的处理程序,该处理程序将覆盖您为每个应用程序提供的CGI
值。
..你真的打算在cgi上运行wsgi吗? 如果你的答案是否定的,那肯定是你的问题。