UPDATE: Ik gepost hier deze vraag op MSDN (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) en Michael Washam van Microsoft reageerde met een beknopte antwoord.
Ik heb gemaakt een webservice om op te treden als een BDC-vriendelijke gevel naar een SharePoint-lijst. Wanneer mij tweedehands zulks van mijn ontwikkelomgeving, het werkte boete. Wanneer ik dit gemigreerd naar een nieuwe server, Ik ondervonden deze fout:
System.io.FileNotFoundException: De webtoepassing op http://localhost/sandbox kon niet worden gevonden. Controleer of u de URL juist hebt getypt. Als de URL bestaande inhoud dienen moet, de systeembeheerder kan moet een nieuwe aanvraag URL-toewijzing toevoegen aan de beoogde toepassing. op Microsoft.SharePoint.SPSite...ctor(SPFarm boerderij, URI requestUri, Booleaanse contextSite, SPUserToken userToken) op Microsoft.SharePoint.SPSite...ctor(String requestUrl) op Conchango.xyzzy.GetExistingDocument(String minId, Tekenreeks maxId, String titleFilter) in c:\Documenten en SettingsPaulMy DocumentsVisual Studio 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:lijn 69 |
Hier is lijn 69:
met behulp van (SPSite site = nieuwe SPSite("http://localhost/sandbox"))
Ik heb geprobeerd verschillende variaties op de URL, inclusief het gebruik van de echte naam van de server, het IP-adres, afsluitende schuine strepen op de URL, etc. Ik got altijd welk vergissing.
Ik gebruikte De Google het onderzoek. Veel mensen worden geconfronteerd met deze kwestie, of variaties van het, maar niemand leek te hebben het opgelost.
Tricksy MOSS verstrekt een gedetailleerde fout die het deed zich niet voor mij om te controleren de 12 korf logboeken. Uiteindelijk, over 24 uur na mijn collega aanbevolen dat ik doen, Ik controleerde de 12 component log en vond dit:
Een uitzondering is opgetreden terwijl het proberen te verwerven van de lokale farm:
System.Security.SecurityException: Toegang tot het gevraagde register is niet toegestaan.
op System.ThrowHelper.ThrowSecurityException(ExceptionResource resource) op Microsoft.Win32.RegistryKey.OpenSubKey(Naam, Boolean beschrijfbare) op Microsoft.Win32.RegistryKey.OpenSubKey(Naam) op Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() op Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() op Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& boerderij, Boolean& isJoined)
De Zone van de vergadering die niet was: MyComputer
|
Dit opende nieuwe mogelijkheden van het onderzoek, dus was het terug naar de Google. Dat leidde me naar dit forumpost: http://forums.CodeCharge.com/Posts.php?post_id = 67135. Die niet echt helpen me maar het beginnen met het maken me denken was er een database en/of security probleem. Ik was op en Andrew Connell van post ten slotte leverde de gedachte dat ik ervoor moet zorgen dat de account van de identiteit van de groep van toepassingen had passende toegang tot de database. Ik dacht dat het al gedaan. Echter, mijn collega ging en gaf de app zwembad identiteit account volledige toegang tot SQL.
Zodra ze dat wijziging aangebracht, Alles begon te werken.
Wat nu is gebeurd is het beste uitgedrukt als een Haiku gedicht:
Problemen hun handen te verhogen.
U swing en missen. &Opnieuw.
Succes! Maar hoe? Waarom?
She didn't want to dingen laat als dat, de voorkeur aan geven de minimaal vereiste machtiging (en waarschijnlijk met het oog op het schrijven van een blog entry; Ik sloeg haar aan de punch, muhahahahaha!).
Ze verwijderd opeenvolgende machtigingen uit de app zwembad identiteit account tot … Er was niet langer een uitdrukkelijke toestemming voor de app account voor de identiteit van de groep op alle. De webservice blijven werken prima.
We gingen en opnieuw opstarten van de servers. Alles bleef om boete te werken.
Dus, om herhaling: Wij gaven de app identiteit volledige toegang tot het zwembad en vervolgens wegnam. De webservice begonnen en nooit gestopt met werken. Bizarre.
Als iemand weet waarom die moet hebben gewerkt, laat alstublieft een reactie.
</einde>