在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
块,但我再也找不到该属性了。我检查了我的旧项目,有几个属性,如AllowAutoRedirect
、ClientCertificates
、ConnectionGroupName
、Container
、CookieContainer
。。。
在我的新VS项目中,我刚刚获得了Url
和UseDefaultCredentials
我还将旧的(正在工作的)VS项目中的web服务包含到我的新项目中,但也没有属性。所以VS项目一定有什么奇怪的地方,或者缺少引用。
我检查了参考资料,重新创建了几次网络参考资料,但都没有成功。
我正在使用Visual Studio 2010 Professional。
知道吗?
感谢您的帮助
我自己解决了这个问题。不幸的是,我在项目映射中添加了一个名为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