C# 通过在web应用程序表单中返回数据字符串来测试web服务

C# 通过在web应用程序表单中返回数据字符串来测试web服务,c#,asp.net,.net,web-services,C#,Asp.net,.net,Web Services,我有一个web服务,但需要知道如何在windows应用程序窗体中测试它 这是服务的开始。我是将表单代码放入按钮中,还是将其返回到标签中?我并没有过度使用c#或.net,我已经成功地调用了web服务,只需要返回字符串以确保加密工作正常 <%@ WebService Language="C#" Class="UserEncryptionLink.EncryptUserLink" %> using System; using System.Collections.Generic; us

我有一个web服务,但需要知道如何在windows应用程序窗体中测试它

这是服务的开始。我是将表单代码放入按钮中,还是将其返回到标签中?我并没有过度使用c#或.net,我已经成功地调用了web服务,只需要返回字符串以确保加密工作正常

<%@ WebService Language="C#" Class="UserEncryptionLink.EncryptUserLink" %>


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Schema;
using System.Xml.Serialization;
using System.Text;
using System.Security.Cryptography;




namespace UserEncryptionLink
{
/// <summary>
   /// This Web Service is to encrypt user details and display them in the URL when  they   click on a link taking them to InfoExchange
/// </summary>
[WebService(Namespace = " Webspace name")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
//To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the    following line. 
[System.Web.Script.Services.ScriptService]







public class EncryptUserLink : System.Web.Services.WebService
{
[WebMethod]
public void TestCypher()
{
    var key = "12345";
    var vector = "12345";
    var username = "YOURDOMAIN\\YOURUSERNAME";
    var url = "sitename.com";
    var it = GetSingleSignOnUrl(url, username, key, vector);
}

}

不确定将表单代码放在按钮中还是放在标签中是什么意思? Web服务没有表单、标签等概念。它们只是服务。。。没有窗体,没有控件。。。只是有点“原始代码”等待通过调用它来提供,而您的托管协议(如IIS或WAS或自托管应用程序)负责旋转它并运行服务

你可以把它叫做。。。这取决于你想从你的应用程序中调用它的位置。可以是点击按钮,可以是定时器,可以是表单加载。。。取决于您和您的应用程序逻辑

您当前的web方法TestChypher目前没有返回任何内容。我猜,您需要返回一个bool值来指示字符串是否匹配

同样,这取决于你和你想要回报什么。如果要返回字符串,请将方法签名更改为返回字符串-因此将“void”更改为“string”,然后在该方法中返回要返回的字符串

示例-短剪:

[WebMethod]
public void SayHello()
{
   return "Hello";
}

如果您想检查Web服务是否正常工作,请在本地浏览到它-您应该能够看到并调用每个方法。至于将代码放在表单中的位置-如果不是琐碎的,那么应该放在业务/数据访问/服务层-否则按钮处理程序很好-我的意思是我创建了一个调用服务的web表单,现在我想返回字段以确保服务正在加密,并将显示加密的URL,我真的不知道如何处理这个问题,我怎么才能得到我创建的web表单,它调用web服务来返回我想要的URL字符串?下面是我的示例,它是直接的。你有没有通过点击按钮从你的网络表单中调用你的网络服务?如果没有,您需要在项目中添加对webservice的引用,然后您应该能够访问它,因为可用的方法将被公开,并且您可以调用它。另外,更新您的问题标签以包含ASP.NET。这样您就没有调用该服务的代码了吗?只需在单击时执行userform.TestCypher()。这将调用该服务(但不会返回任何内容,因为它是一个void方法)是的,我被告知只返回一个字符串来显示加密正在工作,我不知道该怎么做。我想应该是实际url之后的加密url。您是否阅读了我关于如何修改方法以返回内容的回答?:)将“void”更改为“string”,并返回要从webservice返回的字符串。
[WebMethod]
public void SayHello()
{
   return "Hello";
}