Solução: System.IO.FileNotFoundException em “SPSite t: Microsoft.SharePoint.SPSite = new SPSite t: Microsoft.SharePoint.SPSite(URL)”

ATUALIZAÇÃO: Eu postei esta pergunta para MSDN aqui (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) e Michael Washam da Microsoft respondeu com uma resposta concisa.

Eu criei um web service para atuar como um Fachada do BDC-amigável para uma lista do SharePoint. Quando usei isto do meu ambiente de desenvolvimento, funcionou muito bem. Quando isso migrei para um novo servidor, Eu encontrei este erro:

System.IO.FileNotFoundException: A aplicação Web em http://localhost/sandbox Não pôde ser encontrado. Verifique se que você digitou a URL corretamente. Se o URL deve estar servindo conteúdo existente, o administrador de sistema pode precisar de adicionar um novo mapeamento de URL de solicitação para o aplicativo se destina. no Microsoft.SharePoint.SPSite...ctor(Fazenda SPFarm, URI requestUri, ContextSite Boolean, SPUserToken userToken) no Microsoft.SharePoint.SPSite...ctor(String requestUrl) em Conchango.xyzzy.GetExistingDocument(Seqüência de caracteres minId, String maxId, TitleFilter de seqüência de caracteres) em C:\Documentos e SettingsPaulMy DocumentosVisual Studio 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:linha 69

Aqui é a linha 69:

usando (SPSite site = new SPSite t: Microsoft.SharePoint.SPSite("http://localhost/sandbox"))

Eu tentei diferentes variações na URL, inclusive usando o nome do servidor real, seu endereço IP, barras à direita na URL, etc. Eu sempre tenho esse erro.

Eu usei O Google para pesquisá-lo. Muitas pessoas enfrentam esse problema, ou variações do mesmo, Mas ninguém parecia ter resolvido.

MOSS matreiro fornecido um detalhado erro que não ocorreu-me para verificar o 12 logs de colméia. Eventualmente, sobre 24 horas depois meu colega recomendado que fazê-lo, Eu verifiquei o 12 colmeia log e encontrei isto:

Ocorreu uma exceção ao tentar adquirir o farm local:
System.Security.SecurityException: Acesso ao registro solicitado não é permitido.
em System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) em Microsoft.Win32.RegistryKey.OpenSubKey(Nome de cadeia de caracteres, Boolean writable) em Microsoft.Win32.RegistryKey.OpenSubKey(Nome de cadeia de caracteres) em Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() em Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() em Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& fazenda, Boolean& isJoined)
A zona do assembly que falhou foi:  Meu computador

Isso abriu novos caminhos de pesquisa, Então foi para o Google. Isso me levou a isto post no fórum: http://forums.CodeCharge.com/posts.php?post_id = 67135. Isso realmente não me ajudou... mas fez começar fazendo-me pensar que havia um problema de banco de dados e/ou segurança. Eu batalharam e De Andrew Connell postar finalmente despoletado o pensamento que eu deve certificar-se de que a conta de identidade do pool de aplicativos tinha acesso adequado ao banco de dados. Eu pensei que ele já fez.. No entanto, minha colega foi e deu o app pool identidade conta completo para SQL.

Assim que ela fez essa mudança, Tudo começou a trabalhar.

Aconteceu o que se segue é melhor expressa como uma haicai poema:

Problemas levantam as mãos.
Você balança e falhar. Tentar novamente.
Sucesso! Mas como? Por que?

Ela não queria deixar as coisas em paz assim, preferindo dar a permissão mínima necessária (e provavelmente com um olho para gravar uma entrada de blog; Eu batia o soco, muhahahahaha!).

Ela afastada sucessivas permissões da conta de identidade do pool de aplicativo até … Já não havia qualquer permissão explícita para a conta de identidade do pool de aplicativo em todos os. O serviço da web continuou a funcionar muito bem.

Fomos e reiniciei as servidores. Tudo continuou a funcionar bem.

Assim, para recapitular: Demos o app pool identidade completo e em seguida levou embora. O serviço da web começou a trabalhar e nunca parou de funcionar. Bizarro.

Se alguém sabe por que isso deveria ter funcionado., por favor, deixe um comentário.

</fim>

Technorati Tags:

11 pensamentos "Solução: System.IO.FileNotFoundException em “SPSite t: Microsoft.SharePoint.SPSite = new SPSite t: Microsoft.SharePoint.SPSite(URL)”

  1. Fernando Gómez Flores

    Bom post, Obrigado. No meu caso, meu problema foi resolvido alterando o apppool do webservice para coincidir com o conjunto de sites do sharepoint.

    Elogios,
    Fernando A. F Gómez.

    Resposta
  2. Wilson Edgar

    Oi, Eu também tive o mesmo problema. Enquanto o desenvolvimento na mesma máquina com o sharepoint server, Eu estava usando o servidor de desenvolvimento Asp com permissão diferente não certamente não executando sob a mesma identidade do sharepoint (mais sobre isso aqui: http://msdn.microsoft.com/en-us/library/58wxa9w5(VS).aspx) E daí, Eu tenho criar um novo site no IIS (Porto 8080) com a mesma identidade do sharepoint.. e voila.
    Espero que isso ajude

    Resposta
  3. Zac Boyles
    Há uma boa chance de que a função de servidor do SQL securityadmin fixo o problema que estava tendo uma vez que funcionou foi. Isso seria uma boa explicação para isso, continuando a trabalhar.
    Resposta
  4. Fadas

    Artigo interessante. Estamos tendo exatamente o mesmo problema agora. Este tipo de problema e comportamento inesperado/inexplicáveis é exatamente por isso que muitos desenvolvedores não suportam trabalhar com o SharePoint!

    Resposta
  5. Markus

    Esta parte do artigo….”deu o app pool identidade conta completo para SQL”, Você pode elaborar? “identidade do pool de aplicativo” Presumo que significa que o pool de aplicativo do site do sharepoint, mas “completo de SQL”, como se dá isso? Criar um logon no servidor de db para a identidade do pool de aplicativo que não é suficiente…Então, é sobre o db de conteúdo sharepoint onde o novo login Obtém dbo (?) acesso? Ou outro db sharepoint também, como o config db? É difícil para mim, Porque a minha sp conteúdo db aparentemente não é manipulado pela instância do sql server, Aparentemente está sob “/Microsoft Office Servers/14.0/Data”, de qualquer forma eu não vejo isso no sql servidor mgr….alguma idéia de como dar “completo de SQL” Neste caso? Qualquer resposta seria apreciada…Estou meio preso recebendo meu aplicativo de console para criar um objeto SPSite t: Microsoft.SharePoint.SPSite!!

    Resposta

Deixe uma resposta para Benjamin Cancelar resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *