2009-09-15 115 views
2

我有一个MOSS 2007 Web部件,显示从外部web服务(不是源自sharepoint)获得的数据。Sharepoint 2007:如何更改自定义Web部件Web服务URL?

它使用VS2009创建的,该web部件项目包括一个Web引用到我的web服务,它使用下面的代码,以使一个连接(URL在Web引用配置):

//get xml sitemap from webservice 
    MenuService.MenuService service = new MenuService.MenuService(); 
    service.Credentials = System.Net.CredentialCache.DefaultCredentials; 
    XmlNode sitemapRootNode = service.GetSiteMapXML(); 

我编的web部件,部署在BIN文件夹中,一切正常。

但是我不能更改Web服务URL ......如果我想在web部件移动到另一个环境,我需要重新编译,以改变web服务URL

而且整个事情,当我编译它创建了一个webpart项目webpartname.dll.config包含webservice URL的文件...但是这个配置文件什么都不做。如果我改变它,或者直接从BIN文件夹中删除它,那么webpart仍然会连接到旧的URL ... URL似乎是在webpart DLL中硬编码的。

有没有一种方法来配置一个Web部件,因此它会在配置文件中查找其Web服务URL?

回答

2

Web部件作为网站的一部分运行。它应该从该站点的web.config中获取这些配置,因此请尝试将webpartname.dll.config的配置插入到web.config文件(这需要一点点,但要保留相同的部分,但并不复杂)。

+0

为什么我没有想到...谢谢! – scoob 2009-09-15 18:35:52

2

还有SPConfigStore。如果服务器场中有多个服务器,并且希望将Web服务URL保存在中央位置并存储在SharePoint数据库中,则这是一个合适的解决方案。