更新: 我发布这一问题到 MSDN 在这里 (http://forums.microsoft.com/Forums/ShowPost.aspx?PostID=2808543&SiteID=1&mode=1) Michael Washam 的微软用一个简明的答案进行了回击.
创建 web 服务,以作为 BDC 便利门面 到 SharePoint 列表. 当我用这个从我的开发环境, 它能正常工作. 当我这迁移到新的服务器, 我遇到这个错误:
System.IO.FileNotFoundException: 在 Web 应用程序 http://localhost/sandbox 找不到. 请验证您已正确键入 URL. 如果现有的内容,应该服务的 URL, 系统管理员可能需要添加一个新请求 URL 映射到目标应用程序. 在 Microsoft.SharePoint.SPSite...ctor(SPFarm 农场, Uri requestUri, 布尔 contextSite, SPUserToken userToken) 在 Microsoft.SharePoint.SPSite...ctor(字符串 requestUrl) 在 Conchango.xyzzy.GetExistingDocument(字符串 minId, 字符串 maxId, 字符串 titleFilter) 在 C 中:\文档和 SettingsPaulMy DocumentsVisual 工作室 2005ProjectsxyzzyBDC_DocReviewBDC_DocReviewDocReviewFacade.asmx.cs:行 69 |
这里是行 69:
使用 (SPSite 站点 = 新 SPSite("http://localhost/sandbox"))
尝试了不同的 url 的变异, 包括使用服务器的真实姓名, 它的 IP 地址, 在 URL 上斜线结尾, 等. 我总是得到该错误.
我用 谷歌 它的研究. 很多人面临着这个问题, 或它的变化, 但似乎没有人出钱解决.
恶作剧的; 苔藓提供详细错误,没想到我要检查 12 蜂巢日志. 最终, 关于 24 小时后 我的同事 建议我这样做, 我查了一下 12 蜂巢日志,发现了这个:
尝试获取本地农场时出现异常:
System.Security.SecurityException: 不允许请求的注册表访问.
在 System.ThrowHelper.ThrowSecurityException(ExceptionResource 资源) 在 Microsoft.Win32.RegistryKey.OpenSubKey(字符串名称, 布尔值可写) 在 Microsoft.Win32.RegistryKey.OpenSubKey(字符串名称) 在 Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_RegistryConnectionString() 在 Microsoft.SharePoint.Administration.SPConfigurationDatabase.get_Local() 在 Microsoft.SharePoint.Administration.SPFarm.FindLocal(SPFarm& 农场, 布尔值& 种矛盾又掺杂)
失败的程序集的区域是: 我的电脑
|
这开辟了新途径的研究, 所以它又回到了谷歌. 我被引到这 论坛帖子: http://forums.codecharge.com/posts.php?post_id = 67135. 这真的帮不了我,但它确实开始让我觉得那里是一个数据库和/或安全的问题. 我受尽折磨和 安德鲁 · 康奈尔 最后触发后说我要确保应用程序池标识帐户有权访问数据库的思想. 我以为它已经打了. 不过, 我的同事去和给 SQL 应用程序池标识帐户完全访问.
为她做了这种变化, 一切都开始工作.
下面发生的事情是最好的表示为 俳句 诗:
问题举手.
你摆动和小姐. 再试一次.
成功! 但如何? 为什么?
她并不想这样独自一人离开的事情, 更倾向于给最低所需的权限 (可能着眼写博客条目; 毒打冲到, muhahahahaha!).
她从应用程序池标识帐户之前删除连续的权限 … 已不再有任何显式权限的应用程序池标识帐户在所有. Web 服务继续工作得很好.
我们去和重新启动服务器. 一切继续做工精细.
所以, 重述一遍: 我们给应用程序池标识完全访问权限,然后把它拿走了. Web 服务开始工作,永远不会停止工作. 奇怪.
如果有人知道为什么应该会起作用, 请留下评论.
</结束>