2010-03-25 19 views
2

我在使用IIS 7.5上的ELMAH的WCF(.Net 3.5)站點時遇到問題。這是異常消息:將ELMAH添加到WCF項目後的SecurityException

System.Security.SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed. 

要驗證它是WCF和ELMAH IIS7.5上的結合,我創建了VS2008新的WCF服務項目和IIS 7.5的網站下一個新的應用程序。我發表了它,並確保它沒問題。然後我添加了ELMAH DLL。還好。然後將ELMAH configSection引用添加到Web.config。還好。然後我將ELMAH的東西添加到system.web中的httpHandlers和httpModules(是的,我知道這不適用於7.5)。還好。然後我將這添加到system.webServer中的處理程序和模塊中:

<handlers> 
    : 
    <add name="Elmah" verb="POST,GET,HEAD" 
     path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" /> 

<modules> 
    : 
    <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/> 
    <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" /> 
    <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" /> 

然後我得到安全異常。我沒有做任何其他配置更改。

一切正常使用VS開發網絡服務器。該開發機器是安裝了VS 2008 SP1的2008 R2 x64。 WCF服務是爲x86構建的(因爲原始項目是)。 ELMAH是.Net 3.5 x86版本。 IIS7.5應用程序池設置爲允許32位。

任何想法,我需要做什麼來得到這個工作?

回答

0

您將不得不去IIS管理器中爲您的虛擬Web目錄添加託管處理程序。

  • 請求路徑將是:elmah.axd
  • 類型將是:Elmah.ErrorLogPageFactory, Elmah
  • 名稱:Anything you want it to be identified with.

注意:此設置將在每次發佈Visual Studio中的變化及時清除。所以你將不得不再次添加它。

2

在我的情況下,我必須在應用程序池中設置「加載用戶配置文件= True」才能使其工作。

步驟:

從應用程序池列表,進入高級設置,過程模型部分,設置「加載用戶配置文件」,以「真」。

+0

+1這對我使用ELMAH在IIS 7上的.net 3.5項目工作。 – GregL 2011-05-27 02:32:41