从asp.net调用Web服务会导致异常,但是从Windows应用程序中却没有?

时间:2011-03-28 14:22:22

标签: c# asp.net web-services

我有一个使用Bing Translate Web服务的asp.net网站(http://api.microsofttranslator.com/V2/Soap.svc)

调用该服务的代码会导致异常(http://api.microsofttranslator.com/V2/soap.svc处没有可以接受该消息的端点。这通常是由不正确的地址或SOAP操作引起的。有关详细信息,请参阅InnerException(如果存在) 。)

但是相同的代码适用于Windows应用程序。

代码:

BingService.LanguageServiceClient client = new BingService.LanguageServiceClient();
res = client.Translate(BingAppID, "text", "en", "ar", "text/plain", "general");

我怀疑它可能来自我的域名上的政策(iis或类似的东西)因为我试图使用另一个互联网连接(外域,普通DSL没有防火墙)它工作正常!但是当我运行Windows应用程序时,这个策略怎么不适用?

3 个答案:

答案 0 :(得分:4)

同时检查运行网站的应用程序池的标识。如果它在LocalSystem或LocalService帐户下运行,则无法访问外部资源(例如Internet Web服务)。在这种情况下,使用NetworkService帐户重新配置应用程序池(或者更好,创建新的专用应用程序池)可能会解决问题。

答案 1 :(得分:3)

您可以将该应用程序放在不允许在Intranet之外进行访问的Web服务器上。

您可能还需要查看Impersonation您可能需要通过防火墙。

答案 2 :(得分:0)

在Windows应用程序中,代理是否可以保持实例化,但在Web应用程序中代理超出范围并在请求之间重新创建?您可能需要在请求之间保持代理实例化以保持“连接”建立。