Differences between revisions 1 and 26 (spanning 25 versions)
Revision 1 as of 2006-08-16 14:27:14
Size: 1701
Editor: wangzhen
Comment:
Revision 26 as of 2008-04-30 08:41:38
Size: 4206
Editor: ZoomQuiet
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= 1、D4I (Django For IIS,暂定名) =
== 1.1、功能描述 ==
== 1.2、已知缺陷 ==
== 1.3、文件列表 ==
 1. d4iisapi.py ISAPI代码
 1. d4i.py Django的Handler
 1. readme.txt 本文内容
== 1.4、运行环境 ==
[[TableOfContents]]

= 说明 =
这个东西已经不推荐使用。要在IIS跑django,请使用:
http://code.google.com/p/pyisapi-scgi

= D4I (Django For IIS,暂定名) =
文件已更新,适用于最新版的Django. 下载后,d4i.py_2006-01-08 改名为d4i.py . 另一个文件也要这样改名.

== 功能描述 ==
 1. 帮助开发者在IIS上使用Django
== 已知缺陷 ==
 1. 目前静态文件还不能直接交给IIS处理,还是通过Django来处理的. 这个问题正在改进中
  * 静态文件不是在 iis 下另外建个虚拟目录不就搞定了? -- HuangYi
   * 如果把django设到IIS的一个站点(非虚拟目录),那么,访问这个站点下的所有路径,都人交到django去处理了。IIS好像不能像Apache那样可以指定某个路径是静态的。--[:torry:头太晕]
    * 我是说另外单独建个虚拟目录,直接通过 ip 地址访问静态文件,然后在 settings 中配置一下 url 前缀,我就是这么干的。另外其他部分我是基本按照[http://code.djangoproject.com/wiki/DjangoOnWindowsWithIISAndSQLServer 这上面]说的配的,不知道你有没有看过。
 1. 问题已解决,原来是自己对IIS不熟悉,只要新建一个media虚拟目录,然后将虚拟目录中的Application Extension Mapping那一项remove了就可以了。
== 文件列表 ==
 1. attachment:d4i.py_2007-4-23 Django的Handler
 1. attachment:d4iisapi.py_2006-01-08 ISAPI代码
 1. attachment:readme.txt 本文内容
== 运行环境 ==
Line 10: Line 24:
 1. ActivePython2.4 或 PyWin32 http://www.activestate.com/python.plex
== 1.5、配置方法 ==
 1. activepython2.4 或 pywin32 http://www.activestate.com/python.plex
== 配置方法 ==
Line 19: Line 33:
= 2、感谢 =
EMAIL: [email protected]
 1. '''今天升级到了python2.5和activepython2.5,发现了一个新的问题。activepython2.5的PyISAPI_loader.dll出现了一个新的问题,_d4iisapi.dll不能找到同一目录下的d4iisapi.py,必须将d4iisapi.py放到python的lib目录下,否则会出错。'''
 1. '''IIS中,站点属性目录权限标签中所使用的访问用户(默认为IUSR),应使用具有administrator权限的用户,否则在import时会出错。 这个问题我一直没有找到好的解决办法,IIS的权限规则没搞清。'''
 1. '''如果要使用django.contrib.auth,请在IIS站点属性的目录安全性中,将集成windows认证那一项去掉。否则会出错。'''
 1. '''修改程序后不用重启IIS服务的方法: 在IIS的Application Pools中新建一个Application Pool,例如名字为d4i , 在你要使用django的站点属性里,Home Directory标签页中,设置Application Pool项为刚才新建的d4i. 这样,当修改程序后,只要重新启动这个名为d4i的application pool即可生效.不影响其它站点.
'''
= 感谢 =
 1. 感谢limodou, Dreamingk(天成), 刘鑫, 等等几位老大的指导. (人数太多,不一一列举...)
 1. 感谢jejwe帮忙测试。
[:torry:头太晕] [email protected]

##[[PageComment2]]

TableOfContents

说明

这个东西已经不推荐使用。要在IIS跑django,请使用: http://code.google.com/p/pyisapi-scgi

D4I (Django For IIS,暂定名)

文件已更新,适用于最新版的Django. 下载后,d4i.py_2006-01-08 改名为d4i.py . 另一个文件也要这样改名.

功能描述

  1. 帮助开发者在IIS上使用Django

已知缺陷

  1. 目前静态文件还不能直接交给IIS处理,还是通过Django来处理的. 这个问题正在改进中
    • 静态文件不是在 iis 下另外建个虚拟目录不就搞定了? -- HuangYi

      • 如果把django设到IIS的一个站点(非虚拟目录),那么,访问这个站点下的所有路径,都人交到django去处理了。IIS好像不能像Apache那样可以指定某个路径是静态的。--[:torry:头太晕]
  2. 问题已解决,原来是自己对IIS不熟悉,只要新建一个media虚拟目录,然后将虚拟目录中的Application Extension Mapping那一项remove了就可以了。

文件列表

  1. attachment:d4i.py_2007-4-23 Django的Handler
  2. attachment:d4iisapi.py_2006-01-08 ISAPI代码
  3. attachment:readme.txt 本文内容

运行环境

  1. Python2.4 http://www.python.org

  2. activepython2.4 或 pywin32 http://www.activestate.com/python.plex

配置方法

  1. 将d4i.py 复制到 C:\Python24\Lib\site-packages\Django-0.95-py2.4.egg\django\core\handlers目录下
  2. 将d4iisapi.py复制到一个目录下(任何的).
  3. 直接双击d4iisapi.py 会在相同目录下生成一个_d4iisapi.dll , 同时会在iis的默认站点建立一个虚拟目录.不用的话,可以删掉这个虚拟目录 . 也可以直接将C:\Python24\Lib\site-packages\isapi目录下的PyISAPI_loader.dll复制到相同目录下, 并改名为_d4iisapi.dll
  4. 新建站点或虚拟目录.在站点或虚拟目录的属性窗口中," Home Directory" 标签页, 点击"Configuration"按钮打开"Application Configuration"对话框. 在"Wildcard application maps"中,点" Insert"按钮,打开"Add/Edit Application Extension Mapping"对话框. 点"Browse"按扭选择刚才的_d4iisapi.dll . 去掉"Verify that file exists"选框, 然后OK
  5. 我用的是英文版,真累人.... :P
  6. 忘了说了.站点或虚拟目录的"Home Directory"标签页中的"Local Path"项要设为你的Django站点的目当.也就是包含你的settings.py和urls.ppy两个文件的那个目录.
  7. 别忘了把那两个目录的权限设置一下.(我调试的时候,就是因为权限的问题,多花费了一天时间啊.)
  8. 今天升级到了python2.5和activepython2.5,发现了一个新的问题。activepython2.5的PyISAPI_loader.dll出现了一个新的问题,_d4iisapi.dll不能找到同一目录下的d4iisapi.py,必须将d4iisapi.py放到python的lib目录下,否则会出错。

  9. IIS中,站点属性目录权限标签中所使用的访问用户(默认为IUSR),应使用具有administrator权限的用户,否则在import时会出错。 这个问题我一直没有找到好的解决办法,IIS的权限规则没搞清。

  10. 如果要使用django.contrib.auth,请在IIS站点属性的目录安全性中,将集成windows认证那一项去掉。否则会出错。

  11. 修改程序后不用重启IIS服务的方法: 在IIS的Application Pools中新建一个Application Pool,例如名字为d4i , 在你要使用django的站点属性里,Home Directory标签页中,设置Application Pool项为刚才新建的d4i. 这样,当修改程序后,只要重新启动这个名为d4i的application pool即可生效.不影响其它站点.

感谢

  1. 感谢limodou, Dreamingk(天成), 刘鑫, 等等几位老大的指导. (人数太多,不一一列举...)
  2. 感谢jejwe帮忙测试。

[:torry:头太晕] [email protected]

D4I (last edited 2009-12-25 07:15:45 by localhost)