2011-01-14 51 views
0

我有當我安裝了一堆的窗口更新,工作正常我的服務器最多,直到昨晚ASP.NET應用程序,現在它拋出這個異常:asp.net網站拋出System.Security.SecurityException

System.Security.SecurityException: Requested registry access is not allowed. 

不幸的是,有些事情很難調試。我將debug =「true」屬性添加到web.config文件中,以獲取引發異常的行。在我的代碼標識的線是結束如果和代碼似乎只是良性之前:

<body id="body" runat="server"> 
    <div class="conteneur-confirmation"> 
     <% 
     If Not Session("confirmation") Is Nothing Then 
      Response.Write("<ul><li>" & Session("confirmation") & "</li></ul>") 
      Session.Remove("confirmation") 
     End If 
     %> 
    </div> 
    <div class="conteneur-alerte"> 
     <% 
     If Not Session("Alerte") Is Nothing Then 
      Response.Write("<ul><li>" & Session("Alerte") & "</li></ul>") 
      Session.Remove("Alerte") 
     End If <!-- The exception is supposedly launch from here --> 
     %> 
<!-- more code --> 

接下來的事情我艱難能幫助我是堆棧跟蹤。那就是:

[SecurityException: Accès au registre demandé non autorisé.] 
    System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) +52 
    Microsoft.Win32.RegistryKey.InternalOpenSubKey(String name, RegistryKeyPermissionCheck permissionCheck, Int32 rights) +9434757 
    Microsoft.Win32.RegistryKey.OpenSubKey(String name, RegistryKeyPermissionCheck permissionCheck, RegistryRights rights) +15 
    System.TimeZoneInfo.TryCompareTimeZoneInformationToRegistry(TimeZoneInformation timeZone, String id, Boolean& dstDisabled) +234 
    System.TimeZoneInfo.FindIdFromTimeZoneInformation(TimeZoneInformation timeZone, Boolean& dstDisabled) +258 
    System.TimeZoneInfo.GetLocalTimeZone() +307 
    System.TimeZoneInfo.get_Local() +116 
    System.DateTime.ToLocalTime() +60 
    System.IO.File.GetLastWriteTime(String path) +34 
    System.Web.Handlers.AssemblyResourceLoader.GetAssemblyInfoWithAssertInternal(Assembly assembly) +93 
    System.Web.Handlers.AssemblyResourceLoader.GetAssemblyInfo(Assembly assembly) +67 
    System.Web.Handlers.AssemblyResourceLoader.GetWebResourceUrlInternal(Assembly assembly, String resourceName, Boolean htmlEncoded, Boolean forSubstitution, IScriptManager scriptManager) +1159 
    System.Web.Handlers.AssemblyResourceLoader.GetWebResourceUrl(Type type, String resourceName, Boolean htmlEncoded, IScriptManager scriptManager) +722 
    System.Web.UI.ClientScriptManager.GetWebResourceUrl(Page owner, Type type, String resourceName, Boolean htmlEncoded, IScriptManager scriptManager) +167 
    System.Web.UI.ClientScriptManager.RenderWebFormsScript(HtmlTextWriter writer) +158 
    System.Web.UI.Page.RenderWebFormsScript(HtmlTextWriter writer) +58 
    System.Web.UI.Page.BeginFormRender(HtmlTextWriter writer, String formUniqueID) +8910479 
    System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer) +57 
    System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +31 
    System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output) +53 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 
    System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer) +40 
    ASP.masters_sigiweb2_master.__Renderbody(HtmlTextWriter __w, Control parameterContainer) in C:\Inetpub\v3\Masters\sigiweb2.master:96 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +109 
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 
    System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter writer) +31 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208 
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 
    System.Web.UI.Control.Render(HtmlTextWriter writer) +10 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) +208 
    System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +8 
    System.Web.UI.Page.Render(HtmlTextWriter writer) +29 
    System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) +27 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) +100 
    System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +25 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +8431 
    System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +253 
    System.Web.UI.Page.ProcessRequest() +78 
    System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +21 
    System.Web.UI.Page.ProcessRequest(HttpContext context) +49 
    ASP.default_aspx.ProcessRequest(HttpContext context) +37 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +100 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 

它看起來像例外是當啓動嘗​​試System.TimeZoneInfo.TryCompareTimeZoneInformationToRegistry訪問註冊表和asp.net身份,IWAM_MACHINENAME,不擁有的權利。我想,Windows更新之一更改了某些註冊表項的權利或此功能的行爲。我在網上做了一個「TryCompareTimeZoneInformationToRegistry」的搜索,以爲我會找到像我一樣會有同樣錯誤的人。不過Google只會參考這個功能返回兩頁,而且它們都是意大利語。

我想解決方案是簡單地將訪問權限更改爲註冊表的某些部分,但我不知道哪些和似乎在網上幾乎沒有關於此功能的信息(奇怪,不是?) 。

我想補充一點,我的服務器是法語版本的Windows Server 2003.那和我在互聯網上發現的唯一其他信息是意大利語的事實讓我覺得這可能是一個問題,不會發生在英文版的Windows上,但我無法證實這一點。

感謝您的幫助。

回答

1

註冊表項HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\TimeZones\Bangladesh Standard Time的權限設置錯誤(可能是由我剛剛完成的Windows Update導致的問題)。我只是複製了另一個時區密鑰的權限,這對大家都是好的,問題就消失了。

現在,我希望谷歌將這個問題的人發送到這裏。在Web上幾乎找不到有關TryCompareTimeZoneInformationToRegistry功能的信息,這有點奇怪。

-1

該頁面說明問題是由防病毒軟件阻止訪問註冊表引起的。這聽起來像是一個合理的開始。

+0

感謝您的幫助。我已經嘗試禁用防病毒,並沒有改變一件事。我也嘗試使用管理權限運行asp.net進程,並且它工作正常(我知道這是一個很大的安全風險,我只是測試我的假設,它確實是一個訪問權限問題。) – 2011-01-14 15:42:43