天天看点

Csla wcf客户端和服务端配置

响应消息的内容类型 text/html 与绑定(application/soap+xml; charset=utf-8)的内容类型不匹配。如果使用自定义编码器,请确保正确实现 IsContentTypeSupported 方法。

出现上述错误与配置文件中<appSetting>节中【CslaDataPortalUrl】的配置有关,目前的解决办法是将域名换成IP地址即可运行.

用相应的域名有时也能通过.

<?xml version="1.0"?>

<configuration>

 <configSections>

 </configSections>

 <appSettings>

  <!--Remoting方式-->

<!--

    <add key="CslaDataPortalUrl" value="http://网站地址/RemotingPortal.rem"/>

    <add key="CslaDataPortalProxy" value="Csla.DataPortalClient.RemotingProxy,Csla"/>

-->

  <!--WCF方式-->

<!--

  <add key="CslaDataPortalUrl" value="http://网站地址/EdisService.svc"/>

     <add key="CslaDataPortalProxy" value="Csla.DataPortalClient.WcfProxy,Csla"/>

-->

  </appSettings>

  <connectionStrings>

    <add name="EDIS" connectionString="data source=****;initial catalog=****;user id=****;password=****" providerName="System.Data.SqlClient"/>

     </connectionStrings>

<system.serviceModel>

    <bindings>

      <wsHttpBinding>

        <binding name="WcfDataPortal" closeTimeout="00:01:00" openTimeout="00:01:00"

          receiveTimeout="00:10:00" sendTimeout="00:01:00" maxReceivedMessageSize="2147483647">

          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647"

            maxBytesPerRead="2147483647" />

          <reliableSession ordered="true" inactivityTimeout="00:10:00"

            enabled="false" />

          <security mode="None">

            <transport clientCredentialType="Windows" proxyCredentialType="None"

              realm="" />

            <message clientCredentialType="Windows" negotiateServiceCredential="true" />

          </security>

        </binding>

      </wsHttpBinding>

    </bindings>

    <client>

      <endpoint address="http://网站地址/EdisService.svc"

        binding="wsHttpBinding" bindingConfiguration="WcfDataPortal"

        contract="Csla.Server.Hosts.IWcfPortal" name="WcfDataPortal">

        <identity>

          <servicePrincipalName value="host/网站地址" />

        </identity>

      </endpoint>

    </client>

  </system.serviceModel>

<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

<?xml version="1.0"?>

<!--

    Note: As an alternative to hand editing this file you can use the

    web admin tool to configure settings for your application. Use

    the Website->Asp.Net Configuration option in Visual Studio.

    A full list of settings and comments can be found in

    machine.config.comments usually located in

    \Windows\Microsoft.Net\Framework\v2.x\Config

-->

<configuration>

  <appSettings>

    <add key="CslaAuthentication" value="Csla"/>

    <add key="CslaDataPortalProxy" value="Csla.DataPortalClient.WcfProxy, Csla"/>

  </appSettings>

  <connectionStrings>

    <add name="EDIS" connectionString="data source=****;initial catalog=****;user id=****;password=****" providerName="System.Data.SqlClient"/>

  </connectionStrings>

  <system.runtime.remoting>

    <application>

      <service>

        <wellknown mode="SingleCall" objectUri="RemotingPortal.rem" type="Csla.Server.Hosts.RemotingPortal, Csla"/>

      </service>

      <channels>

        <channel ref="http">

          <serverProviders>

            <provider ref="wsdl"/>

            <formatter ref="soap" typeFilterLevel="Full"/>

            <formatter ref="binary" typeFilterLevel="Full"/>

          </serverProviders>

        </channel>

      </channels>

    </application>

  </system.runtime.remoting>

  <system.web>

    <!--

            Set compilation debug="true" to insert debugging

            symbols into the compiled page. Because this

            affects performance, set this value to true only

            during development.

        -->

    <identity impersonate="true" userName="Administrator" password="1234"/>

    <compilation debug="true" defaultLanguage="c#" targetFramework="4.0">

      <assemblies>

        <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

        <add assembly="System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

        <add assembly="System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

        <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

        <add assembly="System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

        <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="System.Workflow.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

        <add assembly="System.Messaging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="System.Workflow.ComponentModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

        <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

        <add assembly="Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

      </assemblies>

    </compilation>

    <!--

            The <authentication> section enables configuration

            of the security authentication mode used by

            ASP.NET to identify an incoming user.

        -->

    <authentication mode="Windows"/>

    <customErrors mode="Off" />

    <pages controlRenderingCompatibilityVersion="4.0" clientIDMode="AutoID"/>

  </system.web>

  <system.serviceModel>

    <services>

      <service name="Csla.Server.Hosts.WcfPortal" behaviorConfiguration="returnFaults">

        <endpoint name="WcfDataPortal" contract="Csla.Server.Hosts.IWcfPortal" binding="wsHttpBinding" bindingConfiguration="wcfBinding" />

      </service>

    </services>

    <behaviors>

      <serviceBehaviors>

        <behavior name="returnFaults">

          <serviceDebug includeExceptionDetailInFaults="true"/>

          <serviceMetadata httpGetEnabled="true"/>

        </behavior>

      </serviceBehaviors>

    </behaviors>

    <bindings>

      <wsHttpBinding>

        <binding name="wcfBinding" maxReceivedMessageSize="2147483647" >

          <readerQuotas maxStringContentLength="2147483647" maxArrayLength="2147483647" />

          <reliableSession ordered="true" inactivityTimeout="00:10:00" enabled="false"/>

          <security mode="None">

            <transport clientCredentialType="Windows" proxyCredentialType="None" realm=""/>

            <message clientCredentialType="Windows" negotiateServiceCredential="true" />

          </security>

        </binding>

      </wsHttpBinding>

    </bindings>

  </system.serviceModel>

</configuration>

WcfDataPortal.svc 内容.

<%@ ServiceHost Language="C#" Debug="true" Service="Csla.Server.Hosts.WcfPortal" %> 

转载于:https://www.cnblogs.com/whc-blog/archive/2012/03/05/2380034.html