zoukankan      html  css  js  c++  java
  • 调试通过的解决方案部署到生产服务器出现错误—未将对象引用设置到对象的实例

    今天将一个在测试环境中测试通过的WSP解决方案部署到生产环境时出现如下错误:

    Event code: 3005 
    Event message: 发生了未处理的异常。
    Event time: 2012/3/5 15:11:36
    Event time (UTC): 2012/3/5 7:11:36
    Event ID: 53e61463a2404804abd431d6c573ebd7
    Event sequence: 75
    Event occurrence: 1
    Event detail code: 0

    Application information:
    Application domain: /LM/W3SVC/1082957370/ROOT-1-129754049971294831
    Trust level: WSS_Minimal
    Application Virtual Path: /
    Application Path: C:\inetpub\wwwroot\wss\VirtualDirectories\80\
    Machine name: XXXX

    Process information:
    Process ID: 5832
    Process name: w3wp.exe
    Account name: User2

    Exception information:
    Exception type: NullReferenceException
    Exception message: 未将对象引用设置到对象的实例。

    Request information:
    Request URL: http://XXXX/_layouts/XXXX.aspx?para=XX&IsDlg=1
    Request path: /_layouts/XXXX.aspx
    User host address: ***.***.***.***
    User: User1
    Is authenticated: True
    Authentication Type: Negotiate
    Thread account name: User2

    Thread information:
    Thread ID: 10
    Thread account name: User2
    Is impersonating: True
    Stack trace: 在 Microsoft.Office.Server.WebControls.MetaDataNavTree.OnUnload(EventArgs e)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Control.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Page.UnloadRecursive(Boolean dispose)
    在 System.Web.UI.Page.ProcessRequestCleanup()
    在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
    在 System.Web.UI.Page.ProcessRequest()
    在 System.Web.UI.Page.ProcessRequest(HttpContext context)
    在 ASP._layouts_hrmuserprofilemanagementwebpart_empinfomation_aspx.ProcessRequest(HttpContext context)
    在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
    在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)


    Custom event details:

    首先测试环境和生产环境站点结构一模一样,只是服务器场管理员,网站管理员等不同,另外此WSP解决方案里面有提升权限的代码,生产环境中User1为普通用户,User2为应用程序管理员,User3为该生产环境的服务器场管理员,并且可以确定不是代码发生的错误,由此可判断发生此错误定为用户权限的问题。

    从错误信息中可以看出,本来是User1发出的请求,但是经权限提升后进程是有User2在运行,则证明是User2权限不足,因为所有提升权限的代码必须是场管理员来运行,所以User2必须要为场管理员中的一员。

    现在就很清楚了,只要把User2加入到生产环境的场管理员里面,然后重启一下IIS,就可以解决上述的问题了。

  • 相关阅读:
    JSP——useBean
    jsp 几种跳转
    jsp MIME
    T-SQL之触发器(下)
    T-SQL之触发器
    T-SQL之存储过程
    T-SQL之游标
    T-SQL之自定义函数
    T-SQL之函数
    T-SQL复习心得(1)变量
  • 原文地址:https://www.cnblogs.com/leolis/p/2380670.html
Copyright © 2011-2022 走看看