以编程方式将Web服务Url添加到SharePoint场的问题

本文关键字:SharePoint 问题 添加 Url 方式 编程 Web 服务 | 更新日期: 2023-09-27 18:26:52

我当前正在尝试将外部web服务的Url添加到SharePoint 2010场的web.config中。当我尝试这样做时,我会收到一个错误,说明我缺少web.config的连接字符串部分。

查看我正在使用的代码,我的印象是该代码未能设置Web.Config的连接字符串部分。

当我尝试执行此操作时,我得到:"未能将web.config修改应用于web应用程序'2962b355-80e1-4183-a958-d4120a94741d'。未能将web..config修改应用于文件'C:''inetpub''wwwroot''wss''VirtualDirectories''80''web.config'。未能对文件'C:''netpub''wwwroot''wss''VirtualDirectories''00''web.config'应用web.config修改。指定的节点"配置/连接字符串"在web.config文件中找不到。未能将web.config修改应用于web应用程序'6fe60f19-9f96-4efb-ba99-a2789354950a'。未能将web.config修改应用到文件'C:''inetpub''wwwroot''wss''VirtualDirectories''81''web.config'。未能对文件'C:''netpub''wwwroot''wss''VirtualDirectories ''81''web.config'应用web.config修改。指定的节点"configuration/conconnectionStrings"在web.config文件中找不到。"

我宁愿不必手动修改web.config文件来简化.wsp文件的安装。

    public string Create(string url)
    {
        var spWebService = SPWebService.ContentService;
        // Define the modification(s) to the web.config
        var modification1 = new SPWebConfigModification
        {
            Path = "configuration",
            Name = "connectionStrings",
            Sequence = 100,
            Owner = Owner,
            Value = " < connectionStrings > < /connectionStrings > ",
            Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode
        };
        var modification2 = new SPWebConfigModification
        {
            Path = "configuration/connectionStrings",
            Name = string.Format("add[@name='{0}']", KeyName),
            Sequence = 100,
            Owner = Owner,
            Value = url,
            Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode
        };
        // Register the Web.config modification with the web service
        spWebService.WebConfigModifications.Add(modification1);
        spWebService.WebConfigModifications.Add(modification2);
        // Propagate those changes across the farm
        spWebService.Update();
        spWebService.ApplyWebConfigModifications();
        // Set the Url globally
        _webServiceUrl = url;
        return _webServiceUrl;
    }

更新

将第二个web.config修改更改为"确保"部分修复了我最初的问题。然而,现在当我尝试运行我得到的代码:

 The '[' character, hexadecimal value 0x5B, cannot be included in a name. Line 1, position 5.

第二次更新

我最终放弃了将配置存储在Web.Config中的想法。我选择使用SPFarm的Property Bag。在几分钟内启动并运行了该实施。谢谢你的帮助!

以编程方式将Web服务Url添加到SharePoint场的问题

我认为当您添加connectionStrings部分(在modification1中)时,您需要使用EnsureSection而不是SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode