2010-11-22 74 views
1

我正在開發一個小型IIS7本機模塊。IIS7本地模塊問題

當我在IIS中創建頁面請求時,我無法從它獲取任何輸出。

所以我已經向後邁出了一步,試圖使MSDN示例中的一個先工作。麻煩的是 - 我不能得到任何輸出,要麼...

樣品是在這裏:

http://msdn.microsoft.com/en-us/library/ms693622(VS.90).aspx

我已經做了以下內容:

。確保我已經導出了RegisterModule

。將該模塊構建爲Win32 dll

。添加了一個web.config和test.aspx頁面,該頁面只顯示「hello world」

。在服務器級別使用IIS gui

將本地模塊添加到IIS中。在站點級別爲我的模塊添加了「* .aspx」所有動詞的處理程序映射。

。重新啓動IIS

我可以看到我的web.config已更新,包括:

<system.webServer> 
    <handlers> 
     <add name="EndRequestModule" path="*.aspx" verb="*" modules="MyHttpModule" scriptProcessor="<REALPATHISINHERE>\endRequestModule.dll" resourceType="Unspecified" preCondition="bitness32" /> 
    </handlers> 
</system.webServer> 

在這一點上,我期待看到在事件查看器線,當我提出要求 - 但沒有。

我也添加了一些「OutputDebugString」調用,試着去看看模塊何時加載或響應請求,但我沒有看到任何輸出,這讓我覺得我缺少一些configesque ...

我正在運行Windows 7 Ultimate x64和VS2010 - 是否有任何額外需要安裝或其他配置(可能在x86和x64之間),因爲它不是服務器操作系統?

對我可能錯過的任何想法都會受到歡迎。

謝謝。

+0

fwiw procexp顯示我的w3wp進程是x64,我的dll目前是x86,爲x64添加一個項目配置,並重新生成目標爲x64的dll結果爲503,服務不可用並且應用程序池停止,事件查看器顯示訪問違反錯誤....我敢肯定,這是什麼與x86與x64,我可以強制測試網站運行x86而不是x64來測試POC? – 2010-11-22 11:16:20

回答

2

固定。

除非需要特別過濾處理器映射,否則不需要處理程序映射,只需在服務器級別安裝模塊就可以了,然後在站點級別刪除不需要模塊的站點。

IIS中的應用程序池高級設置 - 將啓用32位應用程序設置爲TRUE以測試POC。

然後爲x64平臺重新構建DLL,卸載現有模塊,安裝x64,將Enable 32位應用程序設置爲FALSE,然後測試x64模塊。

OutputDebugString調用現在也顯示在DbgView中。

+0

我試圖在Win7 64和VS2010上做同樣的事情。我已經爲x64構建了我的模塊,但應用程序池停止並出現503錯誤。我已經完成了你上面所說的。我仍然排除故障。你可以給我什麼建議? – 2011-10-01 13:15:32

+0

其實我只是想清楚我的問題是什麼,它是事實,IIS 7無法加載從我的個人資料下的Visual Studio項目模塊。我不得不復制我的個人資料目錄之外的DLL,然後IIS 7很高興加載它。哈哈! – 2011-10-01 14:16:33