什麼是使ISAPI DLL工作在IIS7中以進行查詢所需的最小步驟www.website.com/test/bin/ISAPIGet.dll?a=b?請不要參考頂級谷歌搜索,他們是非常通用的,不工作。 我在Delphi2010中編寫了非常簡單的ISAPIGet.dll,它在IIS5 Win2000中很好用。然後我將它放在IIS7 SBS2008, 中,放到C:\ inetpub \ wwwroot \ website \ test \ bin文件夾中。 創建網站/網頁, 用於/測試應用, VirtualDirectory的/ bin中, 中的HandlerMappings的/ bin中添加腳本映射的* .dll我ISAPIGet.dll, 允許我在ISAPIandCgiRestrictions DLL, 創建32位ApplicationPool非託管代碼,經典模式, 將其綁定到/ test應用程序。 當quering www.website.com/test/bin/ISAPIGet.dll?a=b我得到各種錯誤,如500,503(當AppPool失敗),而主頁www.website.com工作正常。 我該怎麼辦?我需要配置web.config文件,在哪裏以及如何?如何在IIS7 64bit中配置Delphi 2010 ISAPI.dll?
0
A
回答
5
據我所知,我有類似的問題讓我們的ISAPI DLL在WinSvr2008R2(64b)上的IIS7中運行。我寫下了一些快速筆記,以幫助我重複最終實現它的步驟。我會盡力在這裏提供這些(至少我們做了什麼)。
- 授予「讀&執行,列出文件夾內容,和讀取」權限的IUSR到文件夾
C:\PathToISAPI_DLL
- 複製的ISAPI DLL需要運行到
c:\windows\syswow64
文件夾(例如,MIDAS.DLL所有DLL文件,dbxmss.dll等) - 啓動IIS管理器
- 添加應用程序池「MyAppPool」 [不管理的,經典的,從現在開始]更改的新應用程序池
- 「高級設置」,讓32位,加上設置空閒超時時間
- 使用「MyAppPool」應用程序「MyApp的」添加到您的網站,並設置物理路徑
C:\PathToISAPI_DLL
現在,你需要做的幾個步驟,在DOS提示符下完成配置的東西:
cd /d c:\windows\system32\inetsrv
REM *** Grant rights to execute the DLL ***
appcmd.exe set config -section:isapiCgiRestriction /+[path='C:\PathToISAPI_DLL\ISAPI.dll',allowed='true']
REM *** Grant the url of the Execute access for hander mappings ***
appcmd.exe set config "Default Web Site/MyApp/ISAPI.DLL" "/commit:Default Web Site/MyApp" /section:handlers /accessPolicy:Read,Script,Execute
REM *** Make sure you have an ISAPI module mapping for *.dll at that path ***
appcmd.exe list config "Default Web Site/MyApp" /section:handlers | findstr /i *.dll
這就是我的筆記的範圍。我已經成功地跟蹤了他們幾次,並一直工作。我有從來沒有能夠使用只是GUI工作。我有總是不得不在DOS提示符下運行appcmd
命令來完成配置。
有時我仍然看到一個404錯誤,在這種情況下,我從帶有ISAPI.DLL的文件夾中刪除web.config,並再次運行最後兩條appcmd
命令。當然,我的ISAPI DLL在web.config文件中沒有任何其他設置,因此刪除它並不會造成什麼影響......
1
是不是因爲dll是32位而IIS7是64位進程,所以不能讀取一個Delphi 32位DLL?
您的主頁是由IIS處理的沒有問題的靜態html。
但是當IIS嘗試加載ISAPIGet.dll
時,它會失敗,因爲它不是64位庫,或者它的某個依賴項缺失。
- 您是否確定您在32位模式下使用IIS7應用程序池?
- 你有所有需要的子庫和bpl在相同的路徑或c:\ windows \ syswow64嗎?
相關問題
- 1. 爲64bit配置Mingw64
- 2. 在IIS7中配置ASP.NET
- 3. 如何爲delphi配置SonarQube?
- 4. 如何在BizTalk Server 2010中配置netMessagingBinding
- 5. 如何在Delphi 2010中安裝TWebBrowser
- 6. 如何配置iis7 http 301重定向?
- 7. 如何爲Web同步配置IIS7
- 8. 如何在Delphi中設置待辦事項列表類2010
- 9. 在IIS7和Windows 7中配置WCF
- 10. 如何在Delphi 2010中安裝Delphi 2009組件包(UniSynEdit包)?
- 11. 如何在Delphi 2010中查找IdMappedPortTCP Delphi 7
- 12. 如何在solaris10上運行64bit jdk 64bit
- 13. 如何在Delphi 2010的TTrackBar上設置自定義滴答?
- 14. Qt在Visual Studio 2010和win7 64bit上
- 15. 配置重定向asp.net/iis7
- 16. 如何分配IIS7線程?
- 17. Delphi 2010和.net
- 18. 如何在Visual Studio 2010中設置默認發佈配置
- 19. Delphi 2010 OXMLDOM
- 20. 如何在Apache 2.X中爲Delphi配置ASAPI DLL?
- 21. TFS 2010配置
- 22. 如何配置www和IIS7中的其他子域的DNS
- 23. 如何在IIS7配置WCF服務:HTTPS,會話的wsHttpBinding(SOAP)
- 24. Delphi Outlook 2007/2010
- 25. 任何人在Delphi-2010和Norton Internet Security 2010中遇到問題?
- 26. Delphi 5 to 2010
- 27. Reportmanager和delphi 2010
- 28. TFont.Charset Delphi中的作用,2010
- 29. Delphi 2010中的RadioGroup.ControlCount問題
- 30. Delphi 2010中的TWordApplication-XE
你的服務器日誌說的錯誤是什麼? – jachguate 2013-03-07 02:12:58
你應該捕獲崩潰轉儲和分析,http://support.microsoft.com/kb/2580960 – 2013-03-07 03:42:15
我不同意這個問題太模棱兩可。 Web上的99/100分步教程未能將關鍵步驟添加到IIS7的32位ISAPI DLL。經歷了兩年前與OP一樣的挫折感,他的問題對我來說非常合適。 – 2013-03-07 19:36:38