如何解决一些控件无法运行在高版本的Chrome下运行的问题

最近在项目中经常碰到需要各类浏览器插件的情况。

比如身份证读卡器、电子签单、自定义检验码等浏览器插件。以前开发的b/s项目可能比较简单,大不了在IE上安装就是。但是随机IE的版本落后,需要考虑的浏览器兼容性越来越多,还有一些新增的功能用不上,比如Html5,所以我们现在开发的 b/s项目统一只在chrome下运行。

但同时也带来了一个问题就是,在34版本之后,这些插件都不能使用了。 NPAPI 不再被支持,全部使用了 PPAPI 模式开发

解决的办法有几种,一个做插件认证,开发符合 PPAPI 模式的插件,但dll相关的操作已经被大大限制。而且还需要通过C++再封装,增加了开发的难度。

 

我有另外一种思路,就是开发一个客户端工具,所有需要用到的插件都可以封装在这个客户端工具里,同时监听本地某个端口。

 

网页上利用Html5 的WebSocket功能,与本地交互。这样就很方便地达到我们想要实现的目的。

 

对于有界面的控件,也可以这样来实施,客户端工具接收到某个消息 之后,就弹出界面,确定之后返回消息 。

Continue reading “如何解决一些控件无法运行在高版本的Chrome下运行的问题”

ArcMap打开越来越慢

今天终于找到原因了,原来是

C:\Users\Administrator\AppData\Roaming\ESRI\Desktop10.1\ArcToolbox下

ArcToolbox.dat文件过大了,都300多M了。每次打开ArcMap都去加载这玩意去了。

直接删掉这个文件就OK了。

起因是:

地理处理–地理处理选项–将地理处理操作记录到日志文件中

不勾选这个,也可以解决。

arcgis 安装问题

arcsde 卸载
sdeservice -o delete -d oracle -i esri_sde
arcsde 安装
sdeservice -o create -d oracle,orcl -p SDE -i esri_sde -n -H D:\ArcGIS\ArcSDE\ora11gexe
协议安装
sdesetup -o update_key -d oracle11g -l C:\ArcGIS\arcsde.ecp -u sde -p SDE
sdemon -o kill -t all -p sde
select * from sde.state_locks;
 select * from sde.object_locks;
 select * from sde.layer_locks;
 select * from sde.table_locks;
ArcGIS10.1模版无法自动添加到VS2012中的解决方案
注册表中添加HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\10.0\InstallDir(类型为REG_SZ),并赋值为C:\Program Files (x86)\ArcGIS\DeveloperKit10.1\Microsoft Visual Studio 10.0(该值可以在HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\11.0\InstallDir中找到)

开始 –>所有程序 –> Microsoft Visual Studio 2012 –> Visual StudioTools –> VS 2012开发人员命令提示

输入devenv.exe /InstallVSTemplates命令,回车。这样就大功告成了。

如果是Arcgis,则在9.0中增加键值

java.lang.reflect.MalformedParameterizedTypeException 的解决办法

近期在开发项目时用到了spring mvc 和mybatis时运行出现如下错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sqlSessionFactory’ defined in class path resource [config/spring-database.xml]: Initialization of bean failed; nested exception is Java.lang.reflect.MalformedParameterizedTypeException

网上搜了一圈都说是springmvc和mybatis的版本冲突,改过之后,还是一样。

今天突然想到了调试一下他们的源码

新到断点到  MalformedParameterizedTypeException 中

运行后发现具体的错误是 org.apache,ibatis的问题,查了一下,ibatis早改为mybatis了,然后去掉这个引用就正常了。

其实解决问题的办法在于找到真正的 问题所在。光看表面的提示其是查不出问题的

arcgis catalog 连接sde时出现 Target state not found in the STATES table 错误

Target state not found in the STATES table [SDE.DEFAULT][STATE_ID = 8802]

除了arcgis论坛说的这种情况

http://support.esri.com/technical-article/000005952

我自己分析是stateid不在status 表中了

我根据正常的sde库分析了一下,versions表中的state_id的值正好是status表中state_id的最大值

那么根据上面的情况8802正好不在status表中。。

接下来好就好办了,找到status中最大的state_id,把该值放到versions表中的state_id

改过之后,就可以正常打开了。

—————————

如果正好解决了你的问题,请留个言。让我知道对大家有了帮助。。

asp.net 调用带证书的webservice解决办法

最近在朋友弄一个调整省政府政务工作流的程序。。

需要把当前的信息推送到政务网上,采用的是带证书的https webservice。。

下面说一下实现过程

第一步,引用webservice地址,删除web.config中相关配置。同时安装好证书

用如下数据替换:

<system.serviceModel>
<bindings>
<customBinding>
<binding name=”IServiceSoapBinding” closeTimeout=”00:01:00″
openTimeout=”00:01:00″ receiveTimeout=”00:10:00″ sendTimeout=”00:01:00″>
<textMessageEncoding maxReadPoolSize=”64″ maxWritePoolSize=”16″
messageVersion=”Soap11″ writeEncoding=”utf-8″>
<!– 政务大厅接口需要使用Soap11 –>
<readerQuotas maxDepth=”32″ maxStringContentLength=”819200000″ maxArrayLength=”1638400000″
maxBytesPerRead=”4096000″ maxNameTableCharCount=”16384000″ />
</textMessageEncoding>
<httpsTransport manualAddressing=”false” maxBufferPoolSize=”52428800″
maxReceivedMessageSize=”6553600″ allowCookies=”false” authenticationScheme=”Anonymous”
bypassProxyOnLocal=”false” hostNameComparisonMode=”StrongWildcard”
keepAliveEnabled=”true” maxBufferSize=”6553600″ proxyAuthenticationScheme=”Anonymous”
realm=”” transferMode=”Buffered” unsafeConnectionNtlmAuthentication=”false”
useDefaultWebProxy=”true” requireClientCertificate=”true” />
</binding>
</customBinding>
</bindings>
<client>
<endpoint address=”https://WebService网址/CXFWebService/webservice/iservice” behaviorConfiguration=”endpointBehavior1″ binding=”customBinding” bindingConfiguration=”IServiceSoapBinding” contract=”ZwdtServices.IService” name=”ServiceImplPort” />
</client>
<behaviors>
<endpointBehaviors>
<behavior name=”endpointBehavior1″>
<dataContractSerializer maxItemsInObjectGraph=”209715200″/>
<clientCredentials>
<clientCertificate findValue=”证书用户” x509FindType=”FindBySubjectName” storeLocation=”LocalMachine” storeName=”My”/>
<serviceCertificate>
<authentication certificateValidationMode=”None”/>
<!–<defaultCertificate findValue=”ShanXi Digital Certificate Authority” x509FindType=”FindBySubjectName” storeLocation=”CurrentUser” storeName=”My”/>–>
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>

但在实际调用时,提示找不到对应的证书用户

我猜测可能是iis用户访问证书有关,那么就在用户和计算机上都导入证书。运行MMC,打开两个证书管理器,都把证书导入一次。

如图

完成之后,果然错误不一样。。

继续运行,出现没有权限的错误

继续设计证书权限

OK完成。。。。。