当前位置: 首页 > 知识库问答 >
问题:

在将django应用程序发布到Azure时获取服务器错误

柯正谊
2023-03-14

我正在尝试使用MSSQL服务器将我的django应用程序发布到azure。我正在使用django azure pyodbc和pyodbc进行连接,当它在本地工作时,每当我使用mssql发布时,我都会收到一个内部服务器错误,尽管发布成功。如果我使用预先打包的sqllite3服务器发布,它就可以工作。我使用的虚拟环境包括Python 3.4、Django 1.8.4、pyodbc 3.0.10和Django pyodbc azure 1.8.3.0。我的settings.py文件如下所示。

DATABASES = {
   'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'db_name',
        'USER': 'u_name',
        'PASSWORD': 'p_word',
        'HOST': 'host.database.windows.net',
        'PORT': '',
    }
}

我已经将webapp的传出IP地址添加到服务器,希望这是问题所在,但事实并非如此。在检查诊断日志后,我找到了比500错误更详细的解释,但我不确定我是否理解它。

 ModuleName FastCgiModule

 Data1 FASTCGI_RESPONSE_ERROR

读取WSGI处理程序时发生数据2错误:回溯(最近一次调用):文件“D:\home\site\wwwroot\env\lib\site packages\sql\u server\pyodbc\base.py”,作为数据库导入pyodbc中的第14行错误:DLL加载失败:%1不是有效的Win32应用程序。在处理上述异常期间,发生了另一个异常:回溯(最近一次调用):文件“D:\Python34\Scripts\wfastcgi.py”,第711行,在主环境中,handler=read\u wsgi\u handler(response.physical\u path)文件“D:\Python34\Scripts\wfastcgi.py”,第568行,在read\u wsgi\u处理程序返回环境中,获取\u wsgi\u处理程序(handler\u name)文件“D:\Python34\Scripts\wfastcgi.py”,第541行,在get\u-wsgi\u-handler=handler()文件中“\ptvs\u-virtualenv\u-proxy.py”,第120行,在get\u-venv\u-handler=get\u-wsgi\u-handler(os.getenv('wsgi-ALT\u-virtualenv\u-handler'))文件中“\ptvs\u-virtualenv\u-proxy.py”,第78行,在get\u-wsgi\u-handler=handler()文件中”D:\home\site\wwwroot\env\lib\site packages\django\core\wsgi.py”,第14行,在安装应用程序中的get\u wsgi\u application django.setup()文件“D:\home\site\wwroot\env\lib\site packages\django\uu init\uuu.py”,第18行。填充(设置.已安装的应用程序)文件“D:\home\site\wwroot\env\lib\site packages\django\apps\注册表.py”“,第108行,在import_models self.models_module=import_module(models_module_name)文件“D:\Python34\lib\importlib_init_.py”第109行,在import_module return_引导程序中的D:\home\site\wwwroot\env\lib\site packages\django\apps\config.py中,第198行文件“”,第2254行,在“gcd导入文件”中,第2237行,在“查找并加载文件”中,第2226行,在“查找并加载未锁定文件”中,第1200行,在“加载未锁定文件”中,第1129行,在“执行文件”中,第1471行,在“执行模块文件”中,第321行,在“调用”中,并删除文件“D:\home\site\wwwroot\env\lib\site packages\django\b\auth\models.py”,第41行,类内权限(models.Model):文件“D:\home\site\wwwroot\env\lib\site packages\django\db\models\base.py”,第139行,在新的类中。将类添加到类(“meta”,选项(meta,**kwargs))文件“D:\home\site\wwwroot\env\lib\site packages\django\db\models\base.py”,第324行,在添加类值中。为类(cls,名称)文件贡献“D:\home\site\wwwroot\env\lib\site packages\django\db\models\options.py”,第250行,在贡献\u到\u类self.db\u表=截断\u名称(self.db\u表,connection.ops.max\u name\u length())文件“D:\home\site\wwwroot\env\lib\site packages\django\db\u init\uuu\uu.py”,第36行,在getattr return getattr(connections[DEFAULT\db\u\u]别名)文件中”D:\home\site\wwwroot\env\lib\site packages\django\db\utils.py”,第240行,在getitem backend=load\u backend(db['ENGINE'])文件“D:\home\site\wwwroot\env\lib\site packages\django\db\utils.py”,第111行,在load\u后端返回导入模块('%s.base'%backend\u name)文件“D:\Python34\lib\importlib\uu init.py”中,第109行,在导入模块返回引导中。第2254行,在导入文件中,第2237行,在查找和加载文件中,第2226行,在查找和加载解锁文件中,第1200行,在加载解锁文件中,第1129行,在执行文件中,第1471行,在执行模块文件中,第321行,在raise INPROPERLYCONFIGURED(“加载pyodbc模块时出错:%s”%e)django.core.exceptions。配置错误:加载pyodbc模块时出错:DLL加载失败:%1不是有效的Win32应用程序。标准输出:标准输出:

共有3个答案

步建茗
2023-03-14

我无法重现您的问题,但我对您的软件包和版本进行了测试。我使用VisualStudio将Django应用程序发布到Azure Web应用程序,效果很好。以下是我的步骤供您参考:1、创建一个空的Web应用程序并从本地Git repo设置部署

2、在Visual Studio中创建Django应用程序,使用python 3.4添加虚拟环境,然后安装python软件包,下面是requirements.txt中的内容:Django==1.8.4 pyodbc==3.0.10 Django pyodbc azure==1.8.3.0

3、将数据库设置修改为Azure上的MSSQL,按F5在本地进行测试

4、右键单击Django应用程序项目名称,单击发布部署

完成部署后,它会自动在默认浏览器中浏览您的应用程序。

林烨烨
2023-03-14

问题是我的同事在他的环境中使用了64位版本的python。很简单,但我感谢你的帮助。

湛骏祥
2023-03-14

我真的不知道Azure是如何工作的,但是我在混合32和64位驱动程序/Python组合时遇到了这个错误。尝试使用x64位版本的python和驱动程序。

 类似资料: