WCF部署奇怪的合同行为

时间:2012-09-12 10:40:25

标签: wcf

WCF服务部署到位于WinServer2008 Standard SP2上的IIS7服务器。

DataContract int会员正在“迷失”

即。客户端发送的所有整数都显示为0,进入服务器上的合同处理逻辑

我制作了一个'反射'合约(将传入的int转换为字符串并返回它)。当测试工具指向IDE中运行的WCF合同时,整数反映正常。如果指向已部署的合同,则会反映零。

部署: 在服务器上创建了IIS应用程序,并将文件部署到物理目录。

已部署的服务显示正常。即“真正的”客户端应用程序(VS2008 WinMobile 6.5应用程序正在开发单独的解决方案)具有WebService引用,可以看到已部署的WCF正常。只是客户端生成的变量值在线路上丢失了。仅发生在客户端生成的变量上。客户端能够使用具有预期值的服务器生成的DataContract变量。它与基类型有关。第一个受害者是客户生成的日期,所以我把它们移动到了旅程的字符串中。 Web.config如下。 谢谢 鲍勃

<?xml version="1.0"?>
<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
   <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>
  </system.web>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the value below to false and remove     the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true"/>
      <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
  </system.webServer>
</configuration>

1 个答案:

答案 0 :(得分:0)

从生产服务器中删除Web应用程序并重新制作。问题部分解决了。测试窗口应用程序现在看到反映的int。但是,WinMobile客户端仍然没有。使用合同的字符串值进行测试,它可以正常工作。生命太短暂了。我将把Contracts更改为字符串字符串。对强类型数据合同这么多。