c# - 我似乎无法从 C# Forms 应用程序调用我的 Web 服务

标签 c# forms service reference

我有一个具有简单网络服务的网站。我可以从页面上的 javascript 成功调用 Web 服务。我需要能够从 C# 表单应用程序调用相同的 Web 服务。 Web 服务代码非常简单:

[WebService(Namespace = "http://myurl.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class IDCService : System.Web.Services.WebService {

    public IDCService () {
    }

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }

我的 javascript 有效:

        function HelloWorld() {
            var yourName = $get('txtYourName').value;
            alert(yourName);
            IDCService.HelloWorld(HelloWorldCalback, failureCB);
        }

        function HelloWorldCalback(result) {
            alert(result);
        }

        function failureCB(result) {
            alert("Failed");
        }

但是,当我尝试在我的 C# 代码中设置对 WS 的引用时,我希望看到的是一个具有方法“HelloWorld”的对象,而实际上我看到的是一个具有诸如“HelloWorldRequest”、“HelloWorldResponse"、"HelloWorldRequestBody"等等。

我是网络服务的新手,很困惑。任何帮助将不胜感激。

最佳答案

取决于您添加引用的方式:-)

如果您通过单击“添加 Web 引用”来添加它,则您指定了服务的位置,并为它提供了一个 namespace - 假设它将被称为“MySVC”。

在那种情况下,您应该能够在您的 Winforms 程序中执行此操作:

MySVC.MyTestService svc = new MySVC.MyTestService();
string message = svc.HelloWorld();

然后检索 HelloWorld 方法的输出。

另一方面,如果您单击“添加服务引用”(这相同 - 这将向您的 Web 服务添加 WCF 客户端代理),那么您会得到那些请求和响应对象类。您还应该获得一个 xxxxClient 类,这就是您将要使用的类:

MyWCFService.MyTestServiceSoapClient client = 
     new MyWCFService.MyTestServiceSoapClient();
string message = client.HelloWorld()

这样,您也应该能够访问网络服务上的所有方法。

马克

关于c# - 我似乎无法从 C# Forms 应用程序调用我的 Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1145836/

相关文章:

c# - 获取Project的UI语言

android - 在Android中编写后台服务

android - 如何在通知中向服务发送 PendingIntent 后隐藏通知面板

c# - 将包含复杂类型数组的复杂类型传递给 Web API

jquery - 使用 Jquery 克隆输入但使用空值

android - 当我的手机处于锁定状态时如何检测摇晃事件

c# - 试图创建不可变类 - 私有(private)集被忽略

c# - NpGsql Entity Framework 6 - "An operation is already in progress"

c# - XamlReader.Parse 在空字符串上引发异常

javascript - 如何使用 Javascript 表单发送到特定电子邮件?