我有當我安裝了一堆的窗口更新,工作正常我的服務器最多,直到昨晚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上,但我無法證實這一點。
感謝您的幫助。
感謝您的幫助。我已經嘗試禁用防病毒,並沒有改變一件事。我也嘗試使用管理權限運行asp.net進程,並且它工作正常(我知道這是一個很大的安全風險,我只是測試我的假設,它確實是一個訪問權限問題。) – 2011-01-14 15:42:43