我是c#中的WebService asmx,有两种方法。我在端口8088上的外部服务器上发布了此服务,用于在防火墙中连接到此服务,我将端口转发从xxx.xxx.xxx.xxx:80(router)到192.168.20.12:8088。在浏览器中可以连接到此Web服务(xxx.xxx.xxx.xxx/Service1.asmx)。现在我创建一个SmartDeviceProject,并在此模式下在WebReference上添加此Web服务:xxx.xxx.xxx.xxx/Service1.asmx我收到此错误: 无法下载以下文件:xxx.xxx.xxx.xxx:8088 / Service1.asmx?wsdl 当在这种模式下添加时:xxx.xxx.xxx.xxx/Service1.asmx?wsdl service 成功添加,但在本例中是代码:
public Service1() {
this.Url = "http://xxx.xxx.xxx.xxx:8088/Service1.asmx";
}
执行项目时,获取此错误:无法建立与网络的连接 我收到此错误,如果从Url中删除所有代码端口8088。
有谁知道如何解决这个问题?
答案 0 :(得分:2)
如果我没弄错,在SmartDevice项目(即PocketPC)中,此异常意味着您无法访问网络。
如果您在模拟器中运行此操作,则需要确保模拟器和模拟设备都配置为连接到Internet或本地网络,具体取决于托管服务的位置。
答案 1 :(得分:1)
创建代理实例后,将Url属性设置为正确的值,就像构造函数将其设置为错误的值一样:
using (var proxy = new Service1())
{
proxy.Url = "xxx.xxx.xxx.xxx/Service1.asmx";
// use the proxy to call operations on the service
}