2011-03-18 60 views
1

有人知道如何在SVC文件ServiceHost聲明標記中指定Service類/程序集時如何定位不同的程序集?我想根據調試vs發佈構建定義來定位不同的程序集名稱。另一個方面是我使用Autofac和AutofacServiceHostFactory將DI處理到我的服務類中。基於構建定義的不同WCF服務程序集

我已經嘗試了幾種預處理指令方法,但每個結果都是「指令'ServiceHost'只能指定一次」。這是我遇到錯誤時的示例代碼。

<% #if DEBUG %> 
    <%@ ServiceHost 
     Service="MyNamspace.TestService, MyNamspace_DEBUG" 
     Factory="Autofac.Integration.Wcf.AutofacServiceHostFactory, Autofac.Integration.Wcf" %> 
<% #else %> 
    <%@ ServiceHost 
     Service="MyNamspace.TestService, MyNamspace" 
     Factory="Autofac.Integration.Wcf.AutofacServiceHostFactory, Autofac.Integration.Wcf" %> 
<% #endif %> 

我知道我可以通過使每個副本SVC文件,然後只基於構建這是我目前在做什麼部署適當的SVC文件解決這個問題,但我想必須有一個更簡單的方法。任何/所有的幫助非常感謝。

我知道如果我不使用IIS和SVC文件來託管我的服務,我可以處理這個問題,但如果可能的話,我想讓它保留IIS託管。

更新1 在尋找更多這方面,我碰到在這篇文章中談到使用的VirtualPathProvider動態生成SVC輸出跑去。這可能適用於我想要的,我以前可能應該考慮過它。我仍然覺得應該有一個更簡單的方法來做到這一點,但似乎無法找到它。如果它確實在下面工作,我會發布我如何得到這個工作。如果你有更好的方法,我願意接受所有想法。

http://social.msdn.microsoft.com/Forums/en/wcf/thread/350f2cb6-febd-4978-ae65-f79735d412db

回答

2

我建議使用configuration based activation(僅WCF 4),並使用不同的配置進行調試和發佈模板(或使用SVC釋放和配置調試)。

+0

這正是我一直在尋找的。我知道像這樣的東西必須可用,但無法找到它。我的谷歌/冰技能讓我失望。這裏有一個這樣的例子的鏈接,對於任何想要實現這個的人來說都是非常有用的。 – 2011-03-18 15:03:04

+0

http://msdn.microsoft.com/en-us/library/dd807499.aspx – 2011-03-18 15:03:44

相關問題