开发时的WCF服务和Windows Phone应用程序

时间:2011-05-13 07:50:21

标签: c# asp.net windows wcf windows-phone-7

我已经创建了一个测试WP7应用程序,该应用程序使用WCF来获取一些示例数据 我将服务添加为服务引用,以及生成的类。在应用程序中,我称之为服务:

var service = new TestService.TestServiceClient();
                service.GetDataCompleted += new EventHandler<TestService.GetDataCompletedEventArgs>(service_GetDataCompleted);
                service.GetDataAsync(new TestService.GetDataRequest());

在服务调用的回调中,我得到以下异常:

  

没有终点收听   http://localhost:8219/TestService.svc   那可以接受这个消息。这是   通常由不正确的地址引起   或SOAP动作。请参阅InnerException,if   目前,了解更多详情。

内部例外说:

  

远程服务器返回错误:   NOTFOUND。

调试时,cassini dev服务器启动。我可以毫无问题地从Internet Explorer访问svc,请参阅wsdl等

Visual Studio生成的配置文件:

<?xml version="1.0" encoding="utf-8"?>
<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
  <behaviors />
  <bindings>
    <binding digest="System.ServiceModel.Configuration.BasicHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data maxBufferSize=&quot;2147483647&quot; name=&quot;BasicHttpBinding_ITestService&quot;&gt;&lt;security mode=&quot;None&quot; /&gt;&lt;/Data&gt;" bindingType="basicHttpBinding" name="BasicHttpBinding_ITestService" />
  </bindings>
  <endpoints>
    <endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:8219/TestService.svc&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;BasicHttpBinding_ITestService&quot; contract=&quot;TestService.ITestService&quot; name=&quot;BasicHttpBinding_ITestService&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:8219/TestService.svc&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;BasicHttpBinding_ITestService&quot; contract=&quot;TestService.ITestService&quot; name=&quot;BasicHttpBinding_ITestService&quot; /&gt;" contractName="TestService.ITestService" name="BasicHttpBinding_ITestService" />
  </endpoints>
</configurationSnapshot>

任何想法??

2 个答案:

答案 0 :(得分:0)

您是否尝试在运行的实际手机/模拟器上从IE访问svc URI?

如果无法执行此操作,请检查手机上的代理设置 如果是实际的手机,只有通过USB连接到PC才能使用。

我已经看到了模拟器(出于某种未知原因)即使在部署和运行/调试新代码时也无法建立网络连接的问题。重新启动模拟器解决了这个问题。

答案 1 :(得分:0)

嗯,这是您失去大量时间的一次,因为错误消息指出您无法解决问题。

要解决此问题,它是this的组合并重新生成服务引用。我知道这不是一个好的答案,但这就是实际发生的事情