2016-11-10 3 views
3

Пытается развернуть приложение Python на Azure Cloud. Создал WebApp от Cookiecutter template с помощью python3.5.2x64. Использование preconfigured web.config из шаблона Я столкнулся с ошибкой 500:
<handler> scriptProcessor could not be found in <fastCGI> application configuration.Ошибка Python FastCGI на Microsoft Azure

Мой web.config файл:

<configuration> 
<system.web> 
    <customErrors mode="Off"/> 
</system.web> 
<appSettings> 
    <add key="PYTHONPATH" value="D:\home\site\wwwroot"/> 
    <add key="WSGI_HANDLER" value="webapp.wsgi_app"/> 
    <add key="WSGI_LOG" value="D:\home\LogFiles\python.log"/> 
</appSettings> 
<system.webServer> 
    <httpErrors errorMode="Detailed" /> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <handlers> 
    <add name="Python FastCGI" 
     path="*" 
     verb="*" 
     modules="FastCgiModule"   
     scriptProcessor="D:\home\Python35\python.exe|D:\home\Python35\wfastcgi.py" 
     resourceType="Unspecified" 
     requireAccess="Script" /> 
    </handlers> 
</system.webServer> 
</configuration> 

Мои webapp.py:

def wsgi_app(environ, start_response): 
    status = '200 OK' 
    response_headers = [('Content-type', 'text/plain')] 
    start_response(status, response_headers) 
    response_body = 'Hello World' 
    yield response_body.encode() 
if __name__ == '__main__': 
    from wsgiref.simple_server import make_server 
    httpd = make_server('localhost', 5555, wsgi_app) 
    httpd.serve_forever() 

Использование Django приложение из Azure не помогает, потому что это довольно устаревший (использует неподдерживаемый Microsoft.Diagnostics, повышает AttributeError: 'module' object has no attribute 'get_virtualenv_handler').

Любые предложения, что я делаю неправильно? Спасибо.

Обновление. По прошествии некоторого времени я выяснил, что все работает с родным установленным Python (2 или 3, не имеет значения), поэтому кажется, что IIS не видит или не smath мой Python Extension (установленный с Azure Portal btw) , Тем не менее, даже с родным Python он работает не сразу, а сначала бросает TypeError: source code string cannot contain null bytes (Python 3.4) или AttributeError: 'module' object has no attribute 'wsgi_app' (Python 2.7). И примерно через 15 минут он начинает работать. magical. Все, что я делал, менялось Hello World! строка.

+0

Вы проверили документацию для этого? https://azure.microsoft.com/en-gb/documentation/articles/web-sites-python-configure/ –

+0

Но пытаетесь ли вы развернуть это как приложение или внутри лазурной виртуальной машины? – Hackerman

+0

@Хакерман, как приложение, я имею в виду, что я выбираю веб-приложение, а затем через Git или VS Code Online. Я добавляю эти два файла и перезапускаю. – pro100filipp

ответ

0

Nah, решение было довольно логичным, но не очевидным (как я думаю). Я просто добавил обработчик настроек моего веб-приложения на портал Azure (веб-приложение -> Настройки приложения -> Сопоставление обработчиков), и все работало как шарм!