Pergunta

Eu criei uma nova aplicação web na porta 8080 com a intenção de ter toda a criação de sites pessoais (ou seja,Meus Sites) armazenados em um banco de dados WSS_Content dedicado (ou seja,uma recomendação de melhores práticas).

Eu passei por todas as etapas necessárias, acho:

  • criada Coleção MeuSites usando Modelo empresarial "Host do meu site" na raiz de http://SPstaff:8080 e este site de nível superior foi criado com sucesso
  • Criação de site de autoatendimento habilitada para o aplicativo da web (botão de opção alterado para ATIVADO).eu tenho um Aviso:A criação de sites de autoatendimento criará sites sob um nome de host compartilhado que eu não entendi (talvez relevante?)
  • Adicionado um caminho gerenciado /meussites para este aplicativo da web
  • Defina as configurações de Meu Site para o aplicativo de serviço de Perfil de Usuário clicando em Configurar meus sites de tal modo que Hospedeiro do meu site definido como http://spstaff:8080/ e Localização do site pessoal definido como meus sites.

Quando tentei navegar pela primeira vez para SPstaff:8080/mysites/ recebi um erro razoável no log de eventos do Windows:

Cannot open database "WSS_Content_SPSTAFFMySites" requested by the login. The login failed. Login failed for user 'CBMIWEB\spAppPool'

Então adicionei esse usuário a esse banco de dados recém-criado e não recebo mais esse erro.

Em vez disso, estou recebendo erros como esta sequência:

O primeiro erro é o ID do evento:6141 Categoria de Tarefa:Topologia

The site /mysites/joanc could not be created.  The following exception occurred: Attempted to perform an unauthorized operation

A próxima entrada no log do aplicativo é o ID do evento:5187 Categoria de Tarefa:Administração

My Site creation failure for user 'CBMIWEB\joanc' for site url `'http://spstaff:8080/mysites/joanc'`. 
The exception was: Microsoft.Office.Server.UserProfiles.PersonalSiteCreateException: A failure was encountered while attempting to create the site. ---> System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
at Microsoft.SharePoint.SPSecurableObject.CheckPermissions(SPBasePermissions permissionMask)
at Microsoft.SharePoint.SPSecurity.ValidateSecurityOnOperation(SPOperationCode code, SPSecurableObject obj)
at Microsoft.SharePoint.SPFeature.AddRowToFeaturesTable(SPFeaturePropertyCollection props, SPSite site, SPWeb web, Boolean fForce)
at Microsoft.SharePoint.SPFeature.Activate(SPSite siteParent, SPWeb webParent, SPFeaturePropertyCollection props, Boolean fForce)
at Microsoft.SharePoint.SPFeatureCollection.AddInternal(SPFeatureDefinition featdef, Version version, SPFeaturePropertyCollection properties, Boolean force, Boolean fMarkOnly)
at Microsoft.SharePoint.SPFeatureCollection.AddInternalWithName(Guid featureId, String featureName, Version version, SPFeaturePropertyCollection properties, Boolean force, Boolean fMarkOnly, SPFeatureDefinitionScope featdefScope)
at Microsoft.SharePoint.SPFeatureManager.EnsureFeaturesActivatedCore(SPSite site, SPWeb web, String sFeatures, Boolean fMarkOnly)
at Microsoft.SharePoint.SPFeatureManager.<>c__DisplayClassa.<EnsureFeaturesActivatedAtSite>b__9()
at Microsoft.SharePoint.SPSecurity.RunAsUser(SPUserToken userToken, Boolean bResetContext, WaitCallback code, Object param)
at Microsoft.SharePoint.SPFeatureManager.EnsureFeaturesActivatedAtSite(Byte[]& userToken, Guid& tranLockerId, Int32 nZone, Guid databaseid, Guid siteid, String sFeatures)
at Microsoft.SharePoint.Library.SPRequest.SscCreateSite(Guid gApplicationId, String bstrUrl, String bstrServerRelativeUrl, Int32 lZone, Guid gSiteId, Guid gDatabaseId, String bstrDatabaseServer, String bstrDatabaseName, String bstrDatabaseUsername, String bstrDatabasePassword, String bstrTitle, String bstrDescription, UInt32 nLCID, String bstrOwnerLogin, String bstrOwnerUserKey, String bstrOwnerName, String bstrOwnerEmail, String bstrSecondaryContactLogin, String bstrSecondaryContactUserKey, String bstrSecondaryContactName, String bstrSecondaryContactEmail, Boolean bADAccountMode, Boolean bHostHeaderIsSiteName, Int32 iDatabaseVersionMajor, Int32 iDatabaseVersionMinor, Int32 iDatabaseVersionBuild, Int32 iDatabaseVersionRevision)
at Microsoft.SharePoint.Administration.SPSiteCollection.Add(SPContentDatabase database, SPSiteSubscription siteSubscription, String siteUrl, String title, String description, UInt32 nLCID, String webTemplate, String ownerLogin, String ownerName, String ownerEmail, String secondaryContactLogin, String secondaryContactName, String secondaryContactEmail, String quotaTemplate, String sscRootWebUrl, Boolean useHostHeaderAsSiteName)
at Microsoft.SharePoint.SPSite.SelfServiceCreateSite(String siteUrl, String title, String description, UInt32 nLCID, String webTemplate, String ownerLogin, String ownerName, String ownerEmail, String contactLogin, String contactName, String contactEmail, String quotaTemplate, SPSiteSubscription siteSubscription)
at Microsoft.Office.Server.UserProfiles.UserProfile.<>c__DisplayClass2.<CreateSite>b__0()
--- End of inner exception stack trace ---
at Microsoft.Office.Server.UserProfiles.UserProfile.<>c__DisplayClass2.<CreateSite>b__0()
at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass4.<RunWithElevatedPrivileges>b__2()
at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)
at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)
at Microsoft.Office.Server.UserProfiles.UserProfile.CreateSite(String strRequestUrl, Boolean bCollision, Int32 lcid)

Outros sintomas usando meu logon pessoal navegando para http://spstaff:8080/mysites/johna são os inúteis "O Internet Explorer não pode exibir a página da web".

Não tenho certeza do que está errado.

Foi útil?

Solução

  • Minha configuração para isso foi geralmente boa, mas minhas escolhas para o novo aplicativo da web introduziram a necessidade de "cabeçalhos de host" e uma porta arbitrária de 8080
  • O nome que exigia "cabeçalhos de host" exigia complicações desnecessárias, então todo o aplicativo da web foi excluído
  • Este novo aplicativo da web ainda falhou (mesmo depois de todas as etapas adequadas tomadas)
  • Tráfego HTTP capturado com Fiddler2 e erros me levaram a suspeitar de regras de Firewall(s)
  • Por fim, o Firewall do Windows em nosso servidor Sharepoint precisava de uma nova regra adicionada para o tráfego de entrada (para permitir a porta 81).

Então o objetivo foi alcançado, mas me pergunto se poderia ter evitado o uso de um número de porta diferente?Eu poderia ter adicionado um segundo aplicativo da web (para conseguir a separação do conteúdo em um banco de dados diferente) que também usasse a porta 80?Poderia um caminho gerenciado curinga para mysites na raiz deste segundo aplicativo da web ter sido suficiente?

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