visual-studio-2010 - 动态设置Web服务的URL

标签 visual-studio-2010 sharepoint-2010

方案:我正在连接到服务器并使用Web服务检索有关SharePoint列表的数据的客户端上运行代码。我正在使用Visual Studio 2010“服务引用”来获取SP网站的Web服务并从列表中获取数据。有用。现在如何进行编码,以便当我想从测试转到生产时,我的Web服务调用仍然可以工作?请注意,该Web服务是SharePoint Web服务,我没有编写它。我只用它。我建议的可能吗?我确实有能力确保两个环境上的站点完全相同(URLS除外)(例如,备份SP站点并将其投入生产)。感谢您的任何建议。

摘要:

基本上,我正在寻找从测试到生产的最佳方法,而无需重新编译消耗SP Web服务的代码。另外,作为一个旁注,如果任何人都知道测试/生产共享点站点必须多么相似,[为了使Web服务能够在不更改URL的情况下在两个站点上都可以工作] ..这将是有用的信息。

解决方案

项目配置文件可用于指定Web服务位置。 VS项目中的.svcdatamap和其他文件仅供设计时使用,并且实际用于连接到SharePoint Web服务的URL作为参数传递给System.Data.Services.Client.DataServiceContext对象。这仅是切线相关的,但是要创建自己的WCF Web服务,请参阅此link。顺便说一句,只要SharePoint列表具有相同的列表名称,并且您要查询的列具有相同的名称,该Web服务将无需重新编译即可工作。

最佳答案

据我所知,Visual Studio Tools for Office项目使您可以在项目中拥有一个app.config文件。我希望Visual Studio创建app.config文件并添加与Web服务引用相关的必要配置设置。无论如何,您都需要将正确的Web服务URL存储在某个地方-app.config,注册表甚至数据库。

如果您无法将Web服务端点地址信息存储在app.config文件中,则有一种方法可以手动配置代理。

  • 如果它是在Visual Studio中作为旧版“Web引用”添加的.asmx引用,则您需要做的就是在调用任何Web服务方法之前设置代理对象的Url属性值。例如:
    MyASMXWebService proxy = new MyASMXWebService();
    proxy.Url = "web service url";
    proxy.HelloWorld();
    
  • 如果它是.svc WCF服务引用,则情况会变得更加复杂。您需要以编程方式创建Web服务端点。例如:
    BasicHttpBinding binding = new BasicHttpBinding();
    EndpointAddress endpoint = new EndpointAddress("web service url");
    
    ChannelFactory<IMyWCFWebService> factory = new ChannelFactory<IMyWCFWebService>(binding, endpoint);
    IMyWCFWebService proxy = factory.CreateChannel();
    
    proxy.DoWork();
    
  • 关于visual-studio-2010 - 动态设置Web服务的URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6795592/

    相关文章:

    visual-studio - XmlDataDocument已过时,是否有替换的想法?

    c# - 如何从 Form1 访问 Form3 中的文本框?

    vb.net - 需要帮助创建一个简单的数学测验 (Visual Basic)

    c# - 从 SharePoint 网站检索托管属性

    sharepoint - 在sharepoint客户端中开发webpart

    javascript - 从 SharePoint 列表列获取超链接

    sharepoint - 在具有多个 WFE 的服务器场环境中部署计时器作业的最佳实践

    visual-studio-2010 - VS2010分析器: is it possible to profile one specific method?

    vb.net - 在 VB.NET 控制台应用程序中更改目标框架

    jquery - PerformancePoint、SharePoint 2010 和 JQuery