【问题标题】:Accessing a WebService using a C# Script使用 C# 脚本访问 WebService
【发布时间】:2013-10-15 15:14:22
【问题描述】:

我目前正在构建一个 SSIS 集成包,作为其中的一部分,我需要访问一个 Web 服务。有谁知道任何 C# 代码可用于向 Web 服务提供变量值,然后还 GET Web 服务返回的值。

SSIS Web 服务任务并不像我需要的那样动态。我需要提供的参数是:

• 服务器名称

• 数据库名称

• 硬件指纹

• 用户名

【问题讨论】:

  • 请提供有关网络服务的详细信息。它使用什么数据格式?

标签: c# web-services ssis


【解决方案1】:

尝试添加脚本任务。在代码编辑器中,右键单击 References 并选择“Add Web Reference”。输入 Web 服务端点 URI,为其命名为项目本地名称,然后单击“添加引用”。

在您的 ScriptMain.cs 文件中,添加一条 using 语句以指向您的新 Web 引用、实例化服务并进行调用。

一些示例代码:

using Company.WebServices;

namespace ST_abcdef.csproj
{
    [System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
    public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
    {
        public void Main()
        {
            WebService1 webService1 = new WebService1();
            var result = webService1.methodA("param1", "param2");
            // process result
        }
    }
}

【讨论】:

  • 感谢回复,脚本似乎完成了。但是我传递给网络服务的值似乎没有发生任何事情。基本上,网络服务对这些值做一些事情,然后写入一个 SQL 表,但我在我的 SQL 表中看不到任何东西。有什么想法吗?
  • 是否有任何日志可以检查以查看 Web 服务是否正在被调用或在此之前是否失败?
  • 我现在要尝试发现,另一个有趣的转折是 web 服务接受对象作为参数,所以我想我需要创建一个对象,将对象设置为字符串值,然后将对象传递给 webservice 方法
  • 听起来你已经搞定了。记得让对象可序列化!
  • 我希望我已经成功了,我的 SQL 表中似乎没有创建任何内容。现在尝试访问某些日志(如果存在)。有什么我应该用或者这两行足以将值发送到 web 服务来替换代码的处理结果部分吗?
猜你喜欢
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 2017-06-14
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多