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>
cara , Eu te amo , u feita o meu dia , Eu estava trabalhando nele há quase um dia , e você acabou de salvar meu tempo
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.
Tenho de ser julgado por 4 hrs. Finalmente me ajuda.. Obrigado muito Jeffrey Knight
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
Agradecimentos para o borne. Essa correção funcionada para mim:
http://www.rootsilver.com/2008/10/the-web-application-at-httploc
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!
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!!
Desculpe por Nunca responder. Eu suponho que você tem tudo para trabalhar. 🙂