在线PDF转换网站集合

Jquery CDN ,

网站加载速度在线监测工具

此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。

09
2014
11

Silverlight利用XamlReader 动态加载XAML对象

 Silverlight的界面元素都是通过直接读取XAML文件的内容来呈现的,但是在某些时候你并不能预先设计好所有的XAML元素,而是需要在程序运行的过程中动态地加载XAML对象,即是,如果希望一个XAML界面中的元素是由用户实时交互产生的,那么可以使用XamlReader.Load方法来实现。

 

<UserControl x:Class="XV.MainPage"
    xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="
http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="
http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="
http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

28
2014
10

WCF Service 配置文件注释

 VS ->Tools->WCF Service Configuration Editor, 这个工具的好处是不用查MSDN确定是否拼写是否正确,都有提示和各个节点的定义.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.ServiceModel>
        <!-- services 元素包含应用中驻留的所有service的 配置要求 -->
        <services>
             <!-- 每个服务的配置属性说明:
               name - 指 定这个service配置是针对的那个服务,为 一个实现了某些Contract的服务类的完全
                 
   
限定名
(名称空间.类型名),ServiceHost载入一个服务后,会 到配置文件中的 下找有
                 
   
没有
name属性跟服务匹配的 的配置
               behaviorConfiguration - 指定在下的一个的name,这个特定给这个service制定了一些行为,
                     
比 如服务是否允许身份模拟
-->
             <service name="名称空间.类型名" behaviorConfiguration="behavior">
                  <host>
                      <baseAddresses>
                           <!-- 在此可以定义每种传输协议的baseAddress, 用于跟使用同样传输协议Endpoint定义的相对地
                   址组成完整的地址,但是每种传输协议只能定义一个baseAddress。HTTP的baseAddress同时是service
                   对外发布服务说明页面的URL-->
                           <add baseAddress="http://address" />
                      </baseAddresses>
                      <timeouts></timeouts>
                  </host>
                  <!-- 每个服务可以有多个Endpoint, 下面 元素对每个Endpoint分别进行 配置
                属性说明:
                address - 指 定这个Endpoint对外的URI,这个URI可以是个绝对地址,也可以是个相对于baseAddress的
                          相对地址。如果此属性为空,则这 个Endpoint的地址就是baseAddress
                binding - 指定这个Endpoint使用的binding,这个banding可以是系统预定义的9个binding之一,
                          比如是basicHttpBinding,也可以是自定义的customBinding。binding决定了通讯 的类型、
                          安全、如何编码、是否基于session、是否基于事务等等
                contract - 指定这个Endpoint对应的Contract的全限定名(名称空间.类型名),这个Contract应 该被
                           service元素的name指定的那个service实现
                bindingConfiguration - 指 定一个binding的配置名称,跟下面同 类的name匹配
                   behaviorConfiguration - 指 定这个endpoint的behavior, 指向 下的同样配置名称的
                name - Endpoint的名称,可选属性,每个Contract都可以有多个Endpoint,但是每个Contract对应的
                       多个Endpoint名必须是唯一的-->
                  <endpoint address="URI" binding="basicHttpBinding" contract="Contract全限定名" bindingConfiguration="binding" behaviorConfiguration="String" name="">
                      <!-- 用户定义的xml元素集合, 一般用作SOAP的header内容-->
                      <headers>
                           <!-- 任何xml内容 -->
                      </headers>
                  </endpoint>
             </service>
        </services>
        <bindings>
             <!-- 指定一个或多个系统预定义的binding, 比如,当然也可以指定自定义的customBinding,
            然后在某个指定的binding下建立一个或多个配置,以便被Endpoint来 使用这些配置 -->
             <basicHttpBinding>
                  <!-- 某一类的binding的下 面可能有多个配置,binding元素的name属 性标识某个binding-->
                  <binding name="binding">
                  </binding>
             </basicHttpBinding>
        </bindings>
        <!-- 定义service和Endpiont行为-->
        <behaviors>
             <!-- 定义service的行为-->
             <serviceBehaviors>
                  <!-- 一个或多个系统提供的或定制的behavior元 素
                属性说明:
                name - 一个behavior唯一标识,元素下的behaviorConfiguration属 性指向这个name-->
                  <behavior name="此Behavior名称">
                      <!-- 指定service元数据发 布和相关信息
                    属性说明:
                    httpGetEnabled - bool类型的值,表示是否允许通过HTTP的get方 法获取sevice的WSDL元数据
                    httpGetUrl - 如 果httpGetEnabled为true, 这个属性指示使用哪个URL地址发布服务的WSDL,
                                 如果这个属性没有设置,则使用服务的HTTP类型的baseAddress后面加上?WSDL-->
                      <serviceMetadata httpGetEnabled="true" httpGetUrl="http://URI:port/address" />
                      <!--指定验证服务端的凭据-->
                      <serviceCredentials>
                           <!--指定服务端的证书
                        属性说明:
                        storeName - 证 书的存储区,可能值为:AddressBook,AuthRoot,CertificateAuthority
                                    Disallowed,My,Root,TrustedPeople,TrustedPublisher
                        storeLocation - 证书存储位置,可能值为:CurrentUser,LocalMachine
                            x509FindType - 查找证书的方式,可能的值:FindBySubjectName,FindByThumbPrint,FindByIssuerName......
                            findValue - 对应查找方式的要查找证书的值                  -->
                           <serviceCertificate storeName="存储区" storeLocation="存储位置" x509FindType="FindBySubjectName" findValue="server1" />
                      </serviceCredentials>
                  </behavior>
             </serviceBehaviors>
             <!-- 定义Endpiont的行为-->
             <endpointBehaviors>
                  <!-- 一个或多个系统提供的或定制的behavior元 素
                属性说明:
                name - 一个behavior唯一标识,元素下的behaviorConfiguration属 性指向这个name-->
                  <behavior name="此Behavior名称">
                      <!--指定客户端的凭据-->
                      <clientCredentials>
                           <!--指定客户端的证书
                        属性说明:
                        storeName - 证 书的存储区,可能值为:AddressBook,AuthRoot,CertificateAuthority
                                    Disallowed,My,Root,TrustedPeople,TrustedPublisher
                        storeLocation - 证书存储位置,可能值为:CurrentUser,LocalMachine
                            x509FindType - 查找证书的方式,可能的值:FindBySubjectName,FindByThumbPrint,FindByIssuerName......
                            findValue - 对应查找方式的要查找证书的值                  -->
                           <clientCertificate storeName="存储区" storeLocation="存储位置" x509FindType="FindBySubjectName" findValue="Client1" />
                           <serviceCertificate>
                                <authentication certificateValidationMode="None" />
                           </serviceCertificate>
                      </clientCredentials>
                  </behavior>
             </endpointBehaviors>
        </behaviors>
        <!-- 包含客户端跟服务端连接使用到的Endpoint的 配置 -->
        <client>
             <!-- 每个客户端Endpoint设置
            属性说明:
            address - 对 应到服务端这个Endpoint的address
            binding - 指定这个Endpoint使用的binding,这个banding可以是系统预定义的9个binding之一,
                      比如是basicHttpBinding
            contract - 指 定这个Endpoint对应的Contract的 全限定名(名称空间.类型名)
            name - Endpoint的配置名,客户端代理类的构造方法中的endpointConfigurationName对 应到这个name
            bindingConfiguration - 指 定客户端binding的具体设置,指向元 素下同类型binding的name
              behaviorConfiguration - 指定这个endpoint的behavior,指向 下的同样配置名称的 -->
             <endpoint address="URI" binding="basicHttpBinding" bindingConfiguration="binding" behaviorConfiguration="String" contract="Contract全限定名" name="endpoint配置名" >
                  <!-- 用于客户端验证服务端身份,可选以下一种方式验证服务端-->
                  <identity>
                      <userPrincipalName></userPrincipalName>
                      <servicePrincipalName></servicePrincipalName>
                      <!--如果客户端验证是windows,这里指定DNS名;如果是Certificate, 这里指定证书subject name-->
                      <dns></dns>
                      <rsa></rsa>
                      <!--指定服务端证书的公钥
                           属性说明:
                           encodedValue - 服务端证书的公钥的base64编码,用于加密用户名和 密码-->
                      <certificate encodedValue=""></certificate>
                      <!-- 用户指定在客户端证书存储区内的服务端证书
                        属性说明:
                        storeName - 证 书的存储区,可能值为:AddressBook,AuthRoot,CertificateAuthority
                                    Disallowed,My,Root,TrustedPeople,TrustedPublisher
                        storeLocation - 证书存储位置,可能值为:CurrentUser,LocalMachine
                            x509FindType - 查找证书的方式,可能的值:FindBySubjectName,FindByThumbPrint,FindByIssuerName......
                            findValue - 对应查找方式的要查找证书的值                  -->
                      <certificateReference storeName="存储区" storeLocation="存储位置" x509FindType="FindBySubjectName" findValue="Client1" />
                  </identity>
             </endpoint>
        </client>
    </system.ServiceModel>
</configuration>

28
2014
10

WCF传输大数据的设置

在从客户端向WCF服务端传送较大数据(>65535B)的时候,发现程序直接从Reference的BeginInvoke跳到EndInvoke,没有进入服务端的Service实际逻辑中,怀疑是由于数据过大超出限定导致的。
 
问题是我实际发送的数据是刚刚从WCF服务端接收过来的,一来一去,数据量差别并不大。
 
然后发现,在客户端和服务端实际使用的是不同的配置,对于客户端,在添加ServiceReference时自动生成的ServiceReferences.ClientConfig文件中system.serviceModel节下有这样的设置:

    <system.serviceModel>
        <bindings>
            <basicHttpBinding>
              <binding name="BasicHttpBinding_IDiagramService" sendTimeout="00:10:00" maxBufferSize="2147483647"
                  maxReceivedMessageSize="2147483647"  >
                <security mode="None" />
              </binding>
            </basicHttpBinding>
        </bindings>
        <client>
            <endpoint address="
http://localhost:8081/DiagramService.svc"
                binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IDiagramService"
                contract="DiagramService.IDiagramService" name="BasicHttpBinding_IDiagramService" />
        </client>
    </system.serviceModel>


在Binding里指定了最大缓存字节数和最大接受字节数,相当于2G的大小!除非传一整套连续剧,一般是够用了。
 
而在服务端,Web.config文件里,Bindings节是空的,而Service也没有指定bindingConfiguration属性,那么它们采用的就是默认的65535的大小。
 
问题找到,解决就比较容易了:
 
在Bindings节添加新的Binding设置,指定最大接受数据:
    <bindings>
      <basicHttpBinding>
        <binding name="BasicHttpBinding_IDiagramService" sendTimeout="00:10:00" maxBufferSize="2147483647"
                  maxReceivedMessageSize="2147483647" />
      </basicHttpBinding>
    </bindings>
之后给相应的Service指定bindingConfiguration属性:

    <services>
      <service name="glTech.Service.DiagramService">
        <endpoint address=""  binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IDiagramService"
                  contract="glTech.Service.IDiagramService" name="BasicHttpBinding_IDiagramService"  />
      </service>
    </services>


这样就可以从客户端发送足够大的数据了。
 

.net默认只能传4M的文件,所以尽管设定了Wcf两端的配置,还是超不出.net的限定,所以如果要传输大文件,还需要在System.Web节下加上

    <httpRuntimemaxRequestLength="102400" />
 
这里的单位是KB,这样就可以传100M的文件了。当然,这么大的文件,最好还是分段传输比较好。

16
2014
10

Silverlight中TreeView使用CheckBox实现多选功能

        <controls:TreeView x:Name="treeview_1" Height="Auto" Width="*" Margin="10" BorderThickness="0" HorizontalAlignment="Left"
                                    VerticalAlignment="Top"></controls:TreeView>

29
2014
09

RadGrid 如何根据数据内容改变内容的颜色和样式

         protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item is GridDataItem)
            {
                GridDataItem dataBoundItem = e.Item as GridDataItem;
                if (dataBoundItem["ColumnUniqueName"].Text == "you Compared Text")
                {
                    dataBoundItem["ColumnUniqueName"].ForeColor = System.Drawing.Color.Red; // chanmge particuler cell
                    e.Item.BackColor = System.Drawing.Color.LightGoldenrodYellow; // for whole row
                    //dataItem.CssClass = "MyMexicoRowClass";
                }
            }
        }

22
2014
09

利用Aspose把图片转换为PDF

 

如何使用Aspose.Pdf控件把图片转换为PDF文件,支持的图片格式包含:Ccitt、Gif、Jpeg、Png、Tiff、Bmp、Emf 、Exif、Icon、Wmf、MemoryBmp。

具体的代码如下:

Aspose.Pdf.Generator.Pdf pdf1 = new Aspose.Pdf.Generator.Pdf();

//Create a section in the Pdf object
Aspose.Pdf.Generator.Section sec1 = pdf1.Sections.Add();

19
2014
09

IIS设置允许exe文件下载的解决方法

 

 

网站目录中含有exe文件,点击对应的链接后应该是下载对应的exe文件,但是一直没反应, 解决方法如下:

1.设置MIME,让IIS支持更多文件类型,如果MIME类型中已经有.exe,这一步可以跳过。

11
2014
09

SQL Server 创建用户和角色只能访问指定视图或表

 

use crm
--当前数据库创建角色
exec sp_addrole 'rapp'
--分配视图权限 GRANT SELECT ON veiw TO [角色]

--指定视图列表
GRANT SELECT ON v_city TO rapp
GRANT SELECT ON v_lp TO rapp
GRANT SELECT ON v_qy TO rapp

go
--添加只允许访问指定视图的用户: exec sp_addlogin '登录名','密码','默认数据库名'
exec sp_addlogin 'sa','sa_pwd','crm'

05
2014
09

C#调用WebKit.net

 

WebKit.net是对WebKit的.Net封装,使用它.net程序可以非常方便的集成和使用webkit作为加载网页的容器。这里介绍一下怎么用它来显示一个网页这样的一个最简单的功能。

29
2014
08

50款LED字体推荐

 

 

The Vandor Spot

the-vander-spot