我的Windows应用商店收到连接到我的asmx网络服务的407错误。我可以通过url浏览到webservice并在IE中调用它。当从一个单独的项目(信号器集线器托管在同一个iis上)调用时,web服务可以工作。
远程服务器返回意外响应:(407)代理 需要身份验证(Forefront TMG需要授权 满足要求。拒绝访问Web代理筛选器。 )。
我已将以下内容添加到.asmx web.config。
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true" />
</system.net>
我已尝试明确设置凭据,但它似乎没有什么区别:
proxy.ClientCredentials.Windows.ClientCredential.Domain = "MYDOMAIN";
proxy.ClientCredentials.Windows.ClientCredential.UserName = "user";
proxy.ClientCredentials.Windows.ClientCredential.Password = "Password";
答案 0 :(得分:0)
我通过按照以下链接声明绑定来解决这个难题: http://blogs.msdn.com/b/wsdevsol/archive/2012/12/21/help-me-how-do-i-connect-to-an-asmx-web-service.aspx
我还启用了“专用网络(客户端和服务器)”#39;根据{{3}}。
我帮助其他人解决此问题的语法示例:
System.ServiceModel.BasicHttpBinding binding = new System.ServiceModel.BasicHttpBinding(System.ServiceModel.BasicHttpSecurityMode.TransportCredentialOnly);
binding.Security.Transport.ClientCredentialType = System.ServiceModel.HttpClientCredentialType.Windows;
System.ServiceModel.EndpointAddress address = new System.ServiceModel.EndpointAddress(new Uri("http://localhost/WebService/myFileName.asmx"));
MyService.MyServiceSoapClient client = new MyService.MyServiceSoapClient(binding, address);
MyService.MyMethodResponse response = await client.MyMethodAsync(null);
var result = response.Body.MyMethodResult;