Pergunta

Eu tenho um problema que está ocorrendo depois que meus reinicialização do servidor. Eu tenho algumas características em SharePoint, para fazer várias coisas. Uma coisa que eles fazem é adicionar itens em um par de diferentes filas MSMQ. Imediatamente após a reinicialização do servidor, se eu tentar fazer login para SharePoint e eu ir para uma página personalizada da mina, e clicar em um botão dentro dessa página (que seria então criar o item msmq) eu me levado a uma página que exibe o seguinte:

O site se recusou a mostrar esta página web Este erro (HTTP 403 Forbidden) significa que o Internet Explorer foi capaz de se conectar ao site, mas não tem permissão para exibir a página da Web

Se eu cavar para o Evento Logs I encontrar os seguintes erros na aplicação:

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 

Também, se eu cavar para os logs do SharePoint, I encontrar os seguintes erros:

Erro de aplicativo quando o acesso /my/site/url/MyPage.aspx, erro = Acesso é negado. (Exceção de HRESULT: 0x80070005 (E_ACCESSDENIED)) rastreamento de pilha do servidor: em System.Transactions.Oletx.IDtcProxyShimFactory.ConnectToProxy (String nodeName, Guid resourceManagerIdentifier, IntPtr managedIdentifier, Boolean & nodeNameMatches, UInt32 & whereaboutsSize, CoTaskMemHandle & whereaboutsBuffer, IResourceManagerShim & resourceManagerShim) em System.Transactions.Oletx.DtcTransactionManager.Initialize () a System.Transactions.Oletx.DtcTransactionManager.get_ProxyShimFactory () em System.Transactions.Oletx.OletxTransactionManager.CreateTransaction (TransactionOptions Propriedades) a System.Transactions.TransactionStatePromoted.EnterState (InternalTransaction tx) ...
... pelo System.Transactions.EnlistableStates.Promote (InternalTransaction TX): em System.Transactions.Transaction.Promote () a System.Transactions.TransactionInterop.ConvertToOletxTransaction (Transaction transação) em System.Transactions.TransactionInterop.GetDtcTransaction (Transaction transação) em System.ServiceModel.Channels.MsmqQueue.GetNativeTransaction (MsmqTransactionMode transactionMode) a System.ServiceModel.Channels.MsmqQueue.SendDtcTransacted (NativeMsmqMessage mensagem, MsmqTransactionMode transactionMode) em System.ServiceModel.Channels.MsmqQueue.Send (mensagem NativeMsmqMessage, MsmqTransactionMode transactionMode) a System.ServiceModel.MsmqIntegration.MsmqIntegrationOutputChannel.OnSend (Message mensagem, TimeSpan timeout) em System.ServiceModel.Chann ...

Eu tenho duas máquinas virtuais, um para a máquina web (sharepoint) e uma da máquina DB (onde todo o conteúdo dbs etc são armazenados). O servidor de DB é um controlador de domínio primário, e ambas as máquinas fazem parte do mesmo domínio. Eu criei um usuário de domínio a ser usado para o pool de aplicativos SharePoint.

Estranhamente, é possível fazer os erros vão embora, indo para uma parte diferente do meu aplicativo e executar esse código (que também adiciona uma entrada para o msmq). Uma vez feito isto, então todo o resto das obras aplicativo como normal.

Qualquer ajuda seria extremamente apreciada.

Nota: Notei que o erro tinha algo a ver com o usuário anônimo (IUSR ...) no IIS para o site do SharePoint. Mudei que usuário seja um usuário administrador de domínio, e o erro já não acontece. Então, é algo a ver com as permissões do IUSR .. user, mas eu não sei o que ...

Foi útil?

Solução

O M G

Ok, então eu tentei algo, era um tiro longo, mas eu estava no meu juízo final.

Eu passei todo o código que estava falando com o MSMQ (adicionar itens para a fila) na corrida com elevada privelages thang, e funcionou !!!!

SPSecurity.RunWithElevatedPrivileges (delegado () { // MSMQCode aqui });

Agora, eu posso reiniciar o servidor, e fazer o material que foi erroring antes, e ele funciona muito bem!

Outras dicas

Considere executar quente scripts após a reinicialização do servidor.

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

permissão dar a todos leitura para o diretório bin sob inetpub \ wss etc ..

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top