zoukankan      html  css  js  c++  java
  • ASP.NET 4.0 升级中遇到的小麻烦

    1、如何指定IIS虚拟目录(应用程序)的框架版本

    如果是iis6,比较简单,在属性页上直接指定即可,可在iis7上,却找不到如何指定版本的功能,费了不少周折,才发现,iis7是按应用程序池来指定版本的,在建立虚拟目录时指定。

    2、Duplicate type name within an assembly

    首先说明,程序的运行环境使用了Castle 1.0rc框架。这个错误出的很莫名其妙,也没有明确的指示。只是提示是在NHibernate初始化类型时出错,具体是哪个类型,也没有明确的提示。开始怀疑真的是自己的类名重复了,但编译可以通过,经仔细检查,也没有发现有重复命名的实体类,百思不得其解,于是google一下,发现有不少类似的问题,多数人说是Castle.DynamicProxy.dll的bug,由于后来这个文件升级到了Castle.DynamicProxy2.dll,而我使用的Castle 1.0rc3 使用的是旧版本的,不敢直接替换。

    这些信息启发下,找到了问题的根源,应该是NHibernate使用Castle.DynamicProxy来生成实体类,但Castle.DynamicProxy的旧版本在ASP.NET 4.0下工作有问题。

    找到问题,解决就比较容易了,直接把应用程序池设置回asp.net 2.0,一切OK。

    看来这个项目只能工作在asp.net 2.0下了。

    使用开源项目风险还是蛮大的,由于asp.net mvc的推出,Castle Project 很久没更新了,可能不再集中打包发布新版本了,因为各个模板都单独发行了新版本,而兼容性如何需要自己来测试,因此要升级恐怕要费一番周折,已经稳定运行的项目,也不想折腾了,但由于需要不停地在上面添加新功能,因为这部分功能受限造成不能使用asp.net 4.0,也觉得很别扭。

    如果一个项目需要持续性开发扩展,或是产品类项目,还是老老实实使用官方原生的基本技术比较好,风险可控,不会绑定到人家的产品上,推荐webform+ado.net。

  • 相关阅读:
    谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!
    23种设计模式大全(适合新手阅读)
    职责链模式-设计模式系列
    策略模式-设计模式系列
    状态模式-设计模式系列
    解释器模式-设计模式系列
    备忘录模式
    中介者模式
    SQL-Server collation, what is it and how to change db/column collation
    [SimHash] the Hash-based Similarity Detection Algorithm
  • 原文地址:https://www.cnblogs.com/inhesoft/p/1725005.html
Copyright © 2011-2022 走看看