在Visual Studio中使用Web引用功能时缺少属性

本文关键字:功能 属性 引用 Web Studio Visual | 更新日期: 2023-09-27 18:28:33

我使用.NET Web引用来消费使用基本身份验证的Web服务。在过去,我可以通过访问相同的命名属性来设置凭据。例如:

MyWebReference.Service1 client = new MyWebReference.Service1();
client.Credentials = new System.Net.NetworkCredential("username", "password");
client.MyOperation();

这在旧项目中运行良好。现在我正试图在一个新的VS项目中设置Credentials块,但我再也找不到该属性了。我检查了我的旧项目,有几个属性,如AllowAutoRedirectClientCertificatesConnectionGroupNameContainerCookieContainer。。。

在我的新VS项目中,我刚刚获得了UrlUseDefaultCredentials我还将旧的(正在工作的)VS项目中的web服务包含到我的新项目中,但也没有属性。所以VS项目一定有什么奇怪的地方,或者缺少引用。

我检查了参考资料,重新创建了几次网络参考资料,但都没有成功。

我正在使用Visual Studio 2010 Professional。

知道吗?

感谢您的帮助

在Visual Studio中使用Web引用功能时缺少属性

我自己解决了这个问题。不幸的是,我在项目映射中添加了一个名为System.svc的WCF服务,这导致了System名称空间和名为System的类之间的冲突

我重命名了System.svc类,Credentials属性变得可以访问。

确保您的服务类继承自:System.Net.HttpWebRequest它具有您正在查找的属性。

using System;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Web.Services;
using System.Web.UI;
namespace WebApplication4
{
    public partial class WebForm1 : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MyService math = new MyService()
            {
                Credentials = new NetworkCredential("Joe", "mydomain", "password"),
                AllowAutoRedirect = false,
                ClientCertificates = new X509CertificateCollection(),
                ConnectionGroupName = ""
            };
        }
    }
    [WebService(Namespace = "http://tempuri.org/")]
    public class MyService : HttpWebRequest
    {
        [WebMethod]
        public int SumOfNums(int First, int Second)
        {
            return First + Second;
        }
    }
}

参考:MSDN