vscode 如何添加 外部web服务器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vscode 如何添加 外部web服务器相关的知识,希望对你有一定的参考价值。

参考技术A 在要添加webservice的项目名称上右击,在右击菜单中选择添加服务引用

在弹出的窗口中可以输入服务的地址

可以引用解决方案中的服务,点击按钮发现

也可以点击高级按钮来专门添加webservice

在弹出的窗口中点击 添加web引用

在弹出窗口中可以输入web服务的地址,或者通过其他三种方式寻找web服务

比如引用解决方案中的web服务,点击此处,在出现的列表中选择要引用的服务
在出现的窗口中点击 添加引用即可

如何验证对WCF Web服务的外部请求?

我正在尝试通过在SOAP标头中传递用户凭据来验证对WCF Web服务的外部请求。

using (UsrService client = new UsrService())
{
    client.Credentials = new System.Net.NetworkCredential("User 1", "Password 1");
    client.SomeRemoteMethod();
}

我得到了例外:

未处理的异常:System.Net.WebException:请求失败,并显示错误消息:对象已移动

Unhandled exception: System.Net.WebException: The request failed with the error message:
--
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/NuiLogin.aspx?ReturnUrl=%2f0%2fServiceModel%2fSimp
leCustomService.svc%2fsoap">here</a>.</h2>
</body></html>

--.
   in System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClien
tMessage message, WebResponse response, Stream responseStream, Boolean asyncCall
)
   in System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodNa
me, Object[] parameters)
   in UsrService.SayHello() in c:VS2015ProjectsWCFSharedDLLWCFSharedDLLTestPr
oxyClass.cs:line 44
   in ConsoleApplicationForTesting.Program.Main(String[] args) in c:VS2015Projec
tsConsoleApplicationForTestingConsoleApplicationForTestingProgram.cs:line 1
6

如何验证对WCF Web服务的外部请求?

我非常感谢这些信息。谢谢大家。

答案

以下列方式制作。

通过使用传输协议,我发送用户凭据如下:

public const string authServiceUri = "http://localhost:8080/ServiceModel/AuthService.svc/Login";
public static CookieContainer AuthCookie = new CookieContainer();

public static bool TryLogin(string userName, string userPassword)
{
    var authRequest = HttpWebRequest.Create(authServiceUri) as HttpWebRequest;
    authRequest.Method = "POST";
    authRequest.ContentType = "application/json";
    authRequest.CookieContainer = AuthCookie;

    using (var requesrStream = authRequest.GetRequestStream())
    {
        using (var writer = new StreamWriter(requesrStream))
        {
            writer.Write(@"{
                ""UserName"":""" + userName + @""",
                ""UserPassword"":""" + userPassword + @"""
            }");
        }
    }

    using (var response = (HttpWebResponse)authRequest.GetResponse())
    {
        if (AuthCookie.Count > 0)
        {
            return true;
        }
    }
    return false;
}

然后我按如下方式设置CookieContainer:

client.CookieContainer = AuthCookie;

之后,可以访问Web服务:

static void Main(string[] args)
{
    using (UsrService client = new UsrService())
    {
        if(TryLogin("User 1", "User 1"))
        {
            client.CookieContainer = AuthCookie;
            Console.WriteLine(client.SayHello());
        }
    }
}

以上是关于vscode 如何添加 外部web服务器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 vscode 中将 `System.Web.Extensions` 程序集添加到 .net 核心项目

如何使用外部服务器作为上行链路并同时托管 Web 应用程序?

如何验证对WCF Web服务的外部请求?

如何从 Web 容器外部查找 JNDI 数据源?

ASP.NET Web API 2:如何使用外部身份验证服务登录?

Heroku 应用程序在 *** 上调用外部 Web 服务 [关闭]