因为项目的需要在silverlight项目中使用富文本编辑器,好用的在线富文本编辑器有很多Fckeditor,百度的ueditor,但是这些富文本编辑器都是html的,想在silverlight中使用必须承载html页面再使用这些富文本编辑器。
之前找到了一个在silverliht中承载html页面的第三方控件htmlhost,但是这个控件有一个不好的地方时,用了只有silverlight项目中所有服务端控件都不能输入中文。
最近找到了一个大牛自己写的一个控件,能够满足我们的需要,自己改造之后放到了项目中.
首先我将它封装成了一个用户控件,长这样子:
然后在项目中使用,此时遇到一个问题,此控件获得的值实际上xml,通过字符串方式保存到oracle中的clob类型的字段中,会出现字符串过长:
虽然说oracle中clob类型能够保存4G的大对象,但是在如果保存的‘’之间的字符超过2000(2000还是4000记不太清楚了)的话就会出现字符过长的问题,解决办法参数传值。
通过wcf上传文件时,有出现了一个问题:
记得上传了一个60多k的一个word文档,出现了一个错误:“远程服务器返回了错误: NotFound”,查了几篇文章,基本上都直接就指出了,引起错误原因:传输的数据量过大,需要配置服务端和客服端的Config。
1.在(服务端)webconfig中配置:
<system.serviceModel>
<services>
<service behaviorConfiguration="metadataBehavior" name="DigitalCityCommandPlatform.Web.OracleService">
<endpoint binding="basicHttpBinding" bindingConfiguration="NewBinding0" contract="DigitalCityCommandPlatform.Web.IOracleService"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="metadataBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
<bindings>
<basicHttpBinding>
<binding name="NewBinding0" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Text"> <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
</binding>
</basicHttpBinding>
</bindings>
2.在客户端配置,这个配置文件时自动生成的
在<system.serviceModel>中添加以下代码
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IOracleService" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
2147483647最大字节数,这个是int32的最大字节数,大小是2047M,肯定能适合正常的数据传输。
好了,基本功能都以实现了。
silverlight中使用富文本编辑器