在设备上运行时出现WP 8 WCF错误

本文关键字:WP WCF 错误 运行时 | 更新日期: 2023-09-27 18:24:55

我有一个WP 8应用程序,它使用我的IIS 8中托管的WCF服务。如果我从VS2013运行应用程序并选择设备或模拟器,则应用程序运行良好。如果我部署应用程序并直接从设备运行应用程序,应用程序会显示错误:

对象引用未设置为对象的实例。堆栈tRACE:System.ServiceModel.Channels.ServiceChannel.SthrowIfFaultUnderstand(MessageReply,MessageFault fault,String操作,MessageVersion版本)。。。

这是我的WCF服务的app.config:

<services>
  <service behaviorConfiguration="Metadata" name="WCFDataLibrary.EnvioDados">
    <clear />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"
      listenUriMode="Explicit">
      <identity>
        <dns value="http://192.168.1.5" />
        <certificateReference storeName="My" storeLocation="LocalMachine"
          x509FindType="FindBySubjectDistinguishedName" />
      </identity>
    </endpoint>
    <endpoint 
      address="http://192.168.1.5/wcfdatasite/EnvioDados.svc" 
      binding="basicHttpBinding"
      contract="WCFDataLibrary.IEnvioDados"/>
    <host>
      <baseAddresses>
        <!--<add baseAddress="http://localhost:8080/WCFDataService" />-->
        <add baseAddress="http://192.168.1.5/WCFDataService/EnvioDados" />
    </baseAddresses>
    </host>
  </service>
</services>

正如我所说,当我从VS2013在设备上运行该应用程序时,一切都很好,但当我将应用程序部署到同一设备并仅使用设备的无线运行该应用时,它就不起作用了。

在设备上运行时出现WP 8 WCF错误

问题出现在serviceMetadata配置中。

最初的密钥是:

<serviceMetadata httpGetEnabled="true" httpGetUrl="http://192.168.1.5/WCFDataService/meta"/>

并且正确的值需要是:

<serviceMetadata httpGetEnabled="true" httpGetUrl="http://192.168.1.5/WCFDataService/meta?wsdl" />

现在它工作得很好!