2008-02-15

WCF 錯誤: 此集合已包含具有配置 http 的位址。此集合中,每一配置最多只能有一個位址。

WCF Service 佈署到 IIS Application Server 之後, 剛開始運作的很順利, 但是後來卻發生以下的問題:

WCF 錯誤: 此集合已包含具有配置 http 的位址。此集合中,每一配置最多只能有一個位址。

剛開始以為是 WCF 有問題, 可是後來重新啟動 IIS 也沒有解決, 所以初步認定應該是設定上的問題, 趕快找 Google 問看看, 輸入錯誤訊息, 搜尋...果然, 找不到想要的, 因為我輸入的是中文...唉...每次都這樣, 只好先嘗試猜測把關鍵字翻譯成英文 collection contains http address, 再搜尋一次, 這一次 Google 終於聽懂我的問題了, 馬上告訴我問題的原因和解決的方法!!

原來是因為 IIS 的站台設定了多重識別才造成這樣的問題, 解決的方法很簡單, 就是在多重識別的設定頁留下一個就好, 其他的移除掉, 問題就可以解決了!!

 

謎之音: 那如果多重識別一定得有多個怎麼辦? 難不成就不能享用 WCF 了嗎?

 

...呃! 我也很想知道, 畢竟只能留一個這樣子的解決方式有點遜, 不算是一個好的解決方案! 那該怎麼做呢, 很簡單, 只要兩個步驟:

  1. 建立一個類別繼承 ServiceHostFactory, 並覆寫 CreateServiceHost 方法, 如下
    public class CustomServiceFactory: ServiceHostFactory
    {
        protected override ServiceHost CreateServiceHost(TypeserviceType, Uri[] baseAddresses)
        {
            return new ServiceHost(serviceType, baseAddresses[0]);
        }
    }
  2. 在原來的 .svc 檔頭部分多加上一個 Factory 屬性的設定, 雖然 intellisense 不會出現, 但是請相信專業, 這個屬性是存在的, 不相信的話請看 Reflector!
    <%@ServiceHost Language="C#" Debug="true" Service="MyCustomService" Factory="CustomServiceFactory"%>

只要這兩步就可以輕鬆解決這個討厭的問題啦!!

2008-02-14

好用的 Visual Studio Extensions

Resource Refactoring Tool

RefactoringTool-Menu.png

Source Code Outliner Power Toy

sco.bmp

好用的 Visualizer for Visual Studio: Mole

從 Visual Studio 2005 以來有個非常好用的功能, 就是在 debug 的時候,  可以用Visualizer 很方便的針對某些類型的變數進行觀察, 比如說 Text Visualizer, XML Visualizer, HTML Visualizer 等等, VS2008 還針對了 IEnumerable 物件也提供了檢視的能力(這麼做會針對該集合物件 enumerate 一次, 所以如果想要檢視集合物件的內容, 要先確認該集合是不會因為被列舉過而有所改變, 否則會發生預期之外的結果), 網路上還有其他人也針對 Visual Studio 寫了一些 Visualizer, 像是 Mole 這個 Visualizer 就超強大, 不論是 ASP.NET, Windows Forms, WPF 都提供了很多好用的 Visualizer, 只能說超好用!!

image

安裝的方法很簡單, 下載解壓後把 Mole.Visualizer.dll 放到
My Documents\Visual Studio 2008\Visualizers
目錄底下就行了!!

VS2008 的相關套件

兩個一定要安裝的套件, 特別是第二個, 改善了很多"慢"的問題

VS 2008 Web Deployment Project Support Released

VS 2008 Web 部署项目版本支持VS 2005 web部署项目提供的所有现有特性,它还添加了如下的其他支持:

  • 从 VS 2005 Web部署项目轻松移植到VS 2008 Web部署项目
  • 只在web部署项目编译成功时才替换输出
  • IIS7支持

VS 2008 Web Development Hot-Fix Roll-Up Available

HTML源码视图的性能问题

  • 在含有多于2层子属性的自定义控件的网页里输入时,源码编辑器会冻结几秒钟。
  • “View Code (查看代码)”的右击上下文菜单命令在web应用项目中需要很长时间才出现。
  • 在打开很大的HTML文件时Visual Studio 会很慢。
  • 在操作带某些标记的很大的文件时,Visual Studio有响应性问题。
  • 在选择很大的HTML文本时,Tab/Shift-Tab (缩进/去缩进,Indent/Un-indent) 操作会很慢。

设计视图的性能问题

  • 在某些页面标记配置下在设计视图中键入很慢。

HTML编辑问题

  • 即使在启用相关选项的情形下,在ClassCssClass属性后面, 引号不会被插入。
  • ServiceReference(服务引用)元素指回到当前网页时,Visual Studio 会死掉。

JavaScript编辑问题

  • 打开JavaScript文件时,客户端脚本的加彩有时会延迟几秒钟。
  • 在当前编辑行之前遇上空字符串属性时,JavaScript IntelliSense不工作。
  • 在用 jQuery 时,JavaScript IntelliSense不工作。

网站build性能问题

  • 在网站( web-site )项目中,在Bin文件夹包含大量的程序集和 .refresh 文件时, Build会很慢。