客户端的配置文件如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <wsHttpBinding>
                <binding name="WSHttpBinding_IService" closeTimeout="00:01:00"
                    openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
                    bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
                    maxBufferPoolSize="524288" maxReceivedMessageSize="500000000"
                    messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
                    allowCookies="false">
                    <readerQuotas maxDepth="500000000" maxStringContentLength="500000000"
                        maxArrayLength="500000000" maxBytesPerRead="500000000" maxNameTableCharCount="500000000" />
                    <reliableSession ordered="true" inactivityTimeout="00:10:00"
                        enabled="false" />
                    <security mode="Message">
                        <transport clientCredentialType="Windows" proxyCredentialType="None"
                            realm="" />
                        <message clientCredentialType="Windows" negotiateServiceCredential="true"
                            algorithmSuite="Default" establishSecurityContext="true" />
                    </security>
                </binding>
            </wsHttpBinding>
        </bindings>
        <client>
            <endpoint address="http://localhost:55707/Service.svc" binding="wsHttpBinding"
                bindingConfiguration="WSHttpBinding_IService" contract="Service.IService"
                name="WSHttpBinding_IService">
                <identity>
                    <dns value="localhost" />
                </identity>
            </endpoint>
        </client>
    </system.serviceModel>
</configuration>服务端的配置如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <behaviors>
            <serviceBehaviors>
                <behavior name="MainService.ServiceBehavior">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="false" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <services>
            <service behaviorConfiguration="MainService.ServiceBehavior"
                name="MainService.Service">
                <endpoint address="" binding="wsHttpBinding" contract="MainService.IService">
                    <identity>
                        <dns value="localhost" />
                    </identity>
                </endpoint>
                <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
            </service>
        </services>
      <bindings>
        <wsHttpBinding>
          <binding name="wsHttp" maxReceivedMessageSize ="50000000"
          messageEncoding="Mtom" maxBufferPoolSize="50000000" >
            <readerQuotas maxDepth="500000000"
            maxArrayLength="500000000" maxBytesPerRead="500000000"
            maxNameTableCharCount="500000000" maxStringContentLength="500000000"/>
            <security mode="None" />
          </binding>
        </wsHttpBinding>
      </bindings>
    </system.serviceModel>
</configuration>

解决方案 »

  1.   

    http://forums.asp.net/p/1299246/2530515.aspx
    看下这篇有帮助否,
    真是不好意思,一直想系统的学习.NET3.5的东东,但是一直没能静下心来学习....
      

  2.   

    配置文件看不出哪错了,你看一下IIS中的错误日志描述
      

  3.   

    对照下你的contract指定的名称是否与代码的一致
      

  4.   

    问题已经解决了,过程和wangping_li 说的过程,正好反过来。
    一开始我没有怀疑过Contract 的问题,因为之前有一个登录的过程,并没有产生错误。看了帖子有试着修改了一下Contract 发现BadRequest不在出现,但是出现了 Http 断掉的现象,查看日志,发现出现一个 INner Exception 于是我怀疑是 Web服务配置的Request 大小有限制,于是Runntime 字节修改到最大值,文件上传成功。问题解决了,世界安静了,呵呵呵谢谢各位的帮忙。