문제

서버가 재부팅 한 후 발생하는 문제가 있습니다. SharePoint에는 다양한 작업을 수행하기위한 몇 가지 기능이 있습니다. 그들이하는 한 가지는 몇 가지 다른 MSMQ 대기열에 항목을 추가하는 것입니다. 서버 재부팅 직후, SharePoint에 로그인하고 내 사용자 정의 페이지로 이동하여 해당 페이지 내에서 버튼을 클릭하면 (MSMQ 항목을 생성) 수행원:

웹 사이트는이 웹 페이지를 보여주기를 거부했다.

이벤트 로그를 파헤 치면 응용 프로그램에서 다음 오류가 있습니다.

Event ID: 1314
An unhandled access exception has occurred

AND in the Security event logs:

3 of these:
Event ID: 560
Object Open:
    Object Server:  SC Manager
    Object Type:    SERVICE OBJECT
    Object Name:    MSDTC
....
    Accesses:   Query status of service 

Event ID: 560
Object Open:
    Object Server:  SC Manager
    Object Type:    SC_MANAGER OBJECT
    Object Name:    ServicesActive
...
    Image File Name:    C:\WINDOWS\system32\services.exe
...
    Accesses:   Connect to service controller 
            Query service database lock state 

Event ID: 560
Object Open:
    Object Server:  SC Manager
    Object Type:    SERVICE OBJECT
    Object Name:    MSDTC
...
    Image File Name:    C:\WINDOWS\system32\services.exe
...
    Accesses:   Query service configuration information 

또한 SharePoint 로그를 파헤 치면 다음 오류가 있습니다.

응용 프로그램 오류 Access /my/site/url/mypage.aspx, Error = Access가 거부됩니다. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) Server stack trace: at System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy(String nodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier, Boolean& nodeNameMatches, UInt32& whereaboutsSize, CoTaskMemHandle& whereaboutsBuffer, IResourceManagerShim& resourceManagerShim) at System.Transactions .oletx.dtctransactionManager.initialize ()에서 system.transactions.oletx.dtctransactionManager.get_proxyshimfactory ()에서 system.transactions.oletx.oletx.oletxtransactionmanager.createTransaction (transactionOptions factieties)에서 system.transactionStateState (internactionationStateStateState)
... at System.Transactions.enlistableStates.Promote (InternalTransaction TX)
at System.Transactions.Transaction.Promote() at System.Transactions.TransactionInterop.ConvertToOletxTransaction(Transaction transaction) at System.Transactions.TransactionInterop.GetDtcTransaction(Transaction transaction) at System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction(MsmqTransactionMode transactionMode) at System .ServiceModel.Channels.MsmqQueue.SendDtcTransacted(NativeMsmqMessage message, MsmqTransactionMode transactionMode) at System.ServiceModel.Channels.MsmqQueue.Send(NativeMsmqMessage message, MsmqTransactionMode transactionMode) at System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend(Message message, TimeSpan timeout) at System.servicemodel.chann ...

웹 용 VM, 하나는 웹 (SharePoint) 머신과 DB 머신 중 하나가 있습니다 (모든 컨텐츠 DBS 등이 저장됨). DB 서버는 기본 도메인 컨트롤러이며 두 시스템 모두 동일한 도메인의 일부입니다. SharePoint 응용 프로그램 풀에 사용할 도메인 사용자를 만들었습니다.

이상하게도, 내 응용 프로그램의 다른 부분으로 가서 해당 코드를 실행하여 오류를 제거 할 수 있습니다 (MSMQ에도 항목을 추가합니다). 일단 완료되면 나머지 응용 프로그램은 모두 정상적으로 작동합니다.

모든 도움은 엄청나게 감사하겠습니다.

참고 : 오류는 SharePoint 사이트의 IIS의 익명 사용자 (IUSR ...)와 관련이 있음을 알았습니다. 해당 사용자를 도메인 관리자 사용자로 변경했는데 더 이상 오류가 발생하지 않습니다. 그래서 그것은 IUSR의 권한과 관련이 있습니다 .. 사용자, 그러나 나는 무엇을 모른다 ...

도움이 되었습니까?

해결책

어머나

좋아, 그래서 나는 무언가를 시도했는데, 그것은 긴 샷이었다. 그러나 나는 나의 지혜에 끝났다.

나는 고가의 특권으로 실행 중에 MSMQ (대기열에 항목 추가)와 대화하는 모든 코드를 포장했으며, 그것은 효과가있었습니다 !!!!

spsecurity.runwithelevatedPrivileges (delegate () {// msmqcode});

이제 서버를 재부팅하고 이전에 오류가 발생한 작업을 수행 할 수 있으며 잘 작동합니다!

다른 팁

서버 재부팅시 워밍업 스크립트를 실행하는 것을 고려하십시오.

http://blogs.msdn.com/joelo/archive/2006/08/13/697044.aspx

모든 사람이 inetpub wss 등의 빈 디렉토리에 대한 권한을 읽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top