Windows Stores App 407连接到asmx服务的代理错误

时间:2015-03-24 05:32:29

标签: .net authentication proxy windows-store-apps asmx

我的Windows应用商店收到连接到我的asmx网络服务的407错误。我可以通过url浏览到webservice并在IE中调用它。当从一个单独的项目(信号器集线器托管在同一个iis上)调用时,web服务可以工作。

  

远程服务器返回意外响应:(407)代理   需要身份验证(Forefront TMG需要授权   满足要求。拒绝访问Web代理筛选器。 )。

  • 通过点击引用并添加服务引用,在visual studio中创建了Web服务引用,我正在使用&service; serviceReference.SoapClient'连接方式。这不适用于代理服务器。
  • 我正在从Visual Studio中内置的Windows 8模拟器运行Windows服务。它位于IIS中运行Web服务的同一台计算机上。
  • 我已经启用了“企业身份验证”#39;在应用程序清单设置中。
  • 我已将以下内容添加到.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";
    
  • 我刚开始在尝试设置应用的新网络上遇到此问题。它在家里工作得很好 - 在我的电脑上工作了#39; ;)

1 个答案:

答案 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;