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>