• 日志 20071210(web.config,smart client)


    今天做的事情可谓鸡零狗碎儿......

    1.今天发现自己是个土人,因为自己WCF程序的配置文件(web.config)居然一直对WCF的相关节点(如<system.serviceModel>)没有智能感知的能力(环境:VS2005)。配置文件的智能感知和代码文件的智能感知不同,前者靠的是schema,而后者靠的是程序集中的原数据。所以首先怀疑是配置文件的名字空间没有指对。但在编辑器里看不到文件中有任何对名字空间的描述,只有一行光秃秃的
    <?xml version="1.0"?>
    看来名字空间的信息是记在别处了。后来在VS中查看XML的属性(首先双击打开这个web.config,然后才能在“属性”面板中看到;只是单击然后右键“属性”看到的只是文件属性),发现其“架构”属性指向的是VS2005安装目录下的一个配置档:
    E:\Program Files\Microsoft Visual Studio 2005\xml\Schemas\DotNetConfig.xsd
    试着在里面搜了一下“system.serviceModel”,果然没有结果(看来安装.net3.0的时候,它不会去修改这个schema文件)。找了一台安装了VS2008的机器,找到它下面的DotNetConfig.xsd,考到本地,重新指定schema的位置,搞定。

    2. Ctrl+F5 是强制IE刷新。以前碰到这种由于IE缓存而看不到最新页面的情况,自己都是采用删除IE临时文件、Cookie这类办法,鄙视自己。

    3. 在发布智能客户端程序(smart client)的时候,在项目的属性页的发布路径(Publish Location)配置节下有两个子配置,一个叫 发布位置(Publishing Folder Location),一个叫 安装URL(Installation Folder URL)。两者默认情况下是一致的,所以自己也没考究过它们的区别,今天栽了一点跟头,把两者之间的区别总结了一下:
    (1)发布位置。这个路径指明了当你点击“发布”按钮后,你希望文件被拷贝到哪个目录下。可以是磁盘路径(C:\deploy\mycustomization),共享文件路径 (\\server\mycustomization), 或Web站点(http://www.microsoft.com/mycustomization)。
    (2)安装路径。这个属性放在下面稍微不起眼的位置,可它实际上更为重要(个人感觉),因为它指明了用户到哪个路径下查找安装文件。可以说,对最终用户来说,只有这个路径才是有意义的,而上面提到的“发布位置”只对开发人员有意义。这个路径和发布位置一样,也是三种形式。
    如果程序已经发布了(甚至已经安装了),可你又想改变程序的安装路径,应该怎么做呢?我也没进行过仔细的实验,但有两点可以提示大家:
    (1)可以访问安装路径中的setup.exe,在命令行中执行它。用“/?”就能看到,它支持 /url 选项,你可以用这个选项来重新设定安装Url,如:
    setup.exe /url="New Installation path"
    需要注意的是,这个操作会改变setup.exe自身的内容,所以会导致原本在这个程序身上的签名无效。
    (2)用记事本打开ApplicationName.application文件,找到<deploymentProvider>节点,把它的值修改成新的安装路径。

    4.XMLSpy的一个妙用
      如果你想观察一个xml schema文件的总体结构,自然用XMLSpy最直观,特别是它的Schema/WSDL视图。今天我碰到一个问题,就是我要看的这个xsd文件结构比较复杂(纯文本达到2M),我也不关心它的总体结构,我只关心某一个特定字符串在这个文件中扮演什么样的位置(作属性名或节点名,特别是它所表示的属性或节点的上层节点的情况)。如果你用IE浏览这个文件,然后定位到这个字符串,然后再层层折叠去找父节点的话,效率就太低了。可以借助XMLSpy对同一个schema的多视图优势,先在其Text视图中查到那个字符串,然后插入书签,然后切换到Schema/WSDL视图,一切就都非常清楚了。

  • 相关阅读:
    Spring+Hibernate集成后事务与Session的一些理解。
    对Spring的一些个人理解
    centos5.8 x86_64安装oracle10g
    C#中MessageBox用法大全(附效果图)
    解决SQL Server管理器无法连接远程数据库的问题
    【sql2000数据库】Named Pipes Provider error 40
    用SQL数据库批量插入数据简介
    DBGridEH在Delphi7中的安装方法及使用说明
    sql server中datetime字段只取年月日如20060421,默认值如何设置?getdate()得到的是包含时分秒的时间。
    获取 Windows 窗体 DataGridView 控件中选定的单元格、行和列
  • 原文地址:https://www.cnblogs.com/xingyukun/p/989706.html
Copyright © 2020-2023  润新知