我在尝试访问MVC站点中的.asmx webservice时遇到异常。我已经尝试了很多东西,例如在控制台应用程序中更新Web引用并构建另一个快速应用程序来测试,但无法通过此问题。如果我从svc变量中提取URL,我可以直接浏览它。
System.Web.Services.Protocols.SoapException 发生消息=服务器无法 处理请求。 --->价值不可能 是空的。参数名称:uriString
Source = System.Web.Services Actor =“” Lang =“”Node =“”Role =“”
堆栈跟踪: 在System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage) 消息,WebResponse响应,流 responseStream,Boolean asyncCall) 在System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName,Object []参数) 在ClarityIntegration.SendTrackerDataToClarity() 在[删除] .Reference.cs:第78行 在[删除] .Program.Main(String [] args) 在[删除] .Program.cs:第33行 的InnerException:
var svc = new TrackerClarityService.ClarityIntegration()
{
Url = url,
Credentials =
new System.Net.NetworkCredential("user", "pass", "domain")
};
svc.SendTrackerDataToClarity();
svc.Dispose();
异常来自Web服务本身。有些全局变量没有通过.asmx调用直接初始化,而是由应用程序本身初始化。
对Web Service中的变量进行一些简单的检查并设置需要设置的内容已经解决了这个问题。
答案 0 :(得分:2)
异常来自Web服务本身。有些全局变量没有通过.asmx调用直接初始化,而是由应用程序本身初始化。
对Web Service中的变量进行一些简单的检查并设置需要设置的内容已经解决了这个问题。
答案 1 :(得分:1)
如果使用基本身份验证,这已经解决了我过去的问题:
NetworkCredential nc = new NetworkCredential();
nc.Domain = "domain"
nc.UserName = "user"
nc.Password = "pwd"
Uri uri = new Uri(svc.Url);
ICredentials credentials = nc.GetCredential(uri, "Basic");
svc.Credentials = credentials;
答案 2 :(得分:-1)
这里的队长,这是实例化WebReference时的消息,但没有定义URL或给定的URL为null,并且调用了一个方法。空URL的来源可能是app / web.config文件中缺少的值。