2010-01-07 123 views
4

看起來世界充斥着人們在部署RIA WCF服務時遇到問題,現在我也是如此。我已經嘗試了一堆東西,但無濟於事。我需要WCF RIA來支持我構建的Silverlight 3應用程序。使用新的WCF RIA服務(11月09日?)我打開VS 2008,創建新的項目(silverlight應用程序),啓用「.NET RIA服務」。將新項目添加到Web項目 - Linq2SQL dbml文件(從前面編寫的SQL 2005 DB)並編譯。我將一個新項目添加到Web項目 - 域服務(鏈接我需要的表)並編譯。使用域上下文我在MainPage中使用標準RIA get查詢「加載」數據並添加一個TextBlock來顯示返回的數據。建立&奔跑(cassini) - 成功。使用VS發佈到本地PC上的IIS - 成功。WCF RIA Silverlight部署問題

使用VS發佈到測試服務器(IIS6) - 瀏覽到位置和Silverlight應用程序加載,但Fiddler告訴我,我已經在所有的WCF .svc請求上有404。使用Fiddler在服務請求上「啓動IE」,這是真的 - 404。

我已經爲.xap,.xaml,.xbap和.svc運行了aspnet_regiis,ServiceModelReg並添加了mime類型。我已經包含了System.Web.Ria和System.Web.DomainServices DLL以及copy local true。

我需要幫助或者

一)溶液

B),以找到一個解決方案

回答

3

我遇到了一些麻煩與這也是一個辦法,但一旦我出來是比較直前鋒。

首先,運行http://timheuer.com/blog/archive/2009/12/10/tips-to-deploy-ria-services-troubleshoot.aspx(儘管看起來你已經覆蓋了大部分)。

檢查你有你的DomainServiceModule在新system.webServer位在web.config和IIS6舊位:

<httpModules> 
    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <add name="DomainServiceModule" type="System.Web.Ria.Services.DomainServiceHttpModule, System.Web.Ria, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </httpModules> 

最後,我不得不手動創建我的服務,通過創建的.svc

<%@ ServiceHost Service="NameOfSerice" Factory="System.Web.Ria.DomainServiceHostFactoryEx" %> 

請確保您還行直接.svc文件(沒有在年底/二進制),你可以得到一些不錯的:其中SL正在尋找他們(從小提琴手),並與他們填充文件錯誤(當然,一旦你解決你的404當​​然!)

HTH,

約旦。

+0

感謝您的建議。我已經通過豪雅的建議,儘管我從來沒有理解如何製作實際的.SVC文件,所以非常感謝。 Fiddler告訴我它正在尋找/PatientBoard/ClientBin/PatientJourneyWeb-PJService.svc/binary - 所以我應該創建一個名爲PatientJourneyWeb-PJService.svc的文件,並將你在那裏列出的文本放在那裏?在Service =「NameOfSerice」中替換「PatientJourneyWeb-PJService」? – Handleman 2010-01-07 00:39:24

+0

首先,嘗試去/PatientBoard/ClientBin/PatientJourneyWeb-PJService.svc,看看你得到了什麼......它可能試圖將你重定向到一個登錄頁面?如果是這樣,那麼請確保IIS設置爲匿名+表單驗證,而不是Windows驗證... 如果這有助於解決問題,那麼請在該位置創建名爲(無二進制)的服務,並將服務主機指向您的域服務。 – Jordan 2010-01-07 09:59:48

+0

感謝您的幫助。我直接打開服務時得到了404,現在增加了svc文件,我得到了500:「無法找到作爲ServiceHost指令中Service屬性值提供的類型'PatientJourneyWeb.PJService'。」 – Handleman 2010-01-11 01:45:09

-1

我認爲如果你按照here的描述擴展工廠,你只能使用FactoryEx。另外,根據我的幫助文件,全名是System.Web.Ria.Services.DomainServiceHostFactory,但解析器也無法創建該類型,儘管我在GAC中有System.Web.Ria。

我同意 - 通過https部署WCF RIA是一個挑戰 - 我還沒有得到它的工作。

0

我遇到了同樣的問題。在Windows 7下使用cassini服務器正常工作。使用IIS7部署到Windows Server 2008 R2,並且不起作用。 Fiddler報告說正在拋出'EndPointNotFoundException'。

因爲我完全控制了服務器,所以我的解決方案是安裝VS2008的Visual Studio 2008 Express,Silverlight 3 SDK和WCF RIA Services Beta。這意味着必需的DLL已經安裝在GAC中。我不認爲這會影響結果,但我關閉了由Web應用程序引用的RIA DLL的「複製本地」。

可能是一個非正統的解決方案,但它爲我工作!其實,我是在微軟支持的建議下這樣做的。

順便說一句,此時通過微軟支持這個很少。他們實際上正試圖在內部解決誰會支持這項技術:WCF團隊或Silverlight團隊。我知道它仍處於測試階段,但要警告說'GoLive'許可證並不意味着它完全支持。我邀請了來自WCF團隊的人幫助我解決問題,但在電話會議期間多次提供免責聲明,但尚未通過這些渠道真正支持。

1

我打了一小會兒,而我自己找不到.svc文件的這個問題。我很快意識到這不僅僅是我的.svc,它是所有的.svc文件。它似乎是一個IIS6問題。事實證明,默認情況下ASP.NET v4.0x Web服務擴展設置爲「禁止」。進入Web Service Extensions配置並將ASP.NET v4.0x設置爲「允許」,並且生活都很好。

0

如果有人有興趣,如何部署一個完整的Silverlight解決方案與自己的批處理腳本IIS,看我的答案在這個帖子:

Is there a Management Service (WMSVC) UI in IIS 7 on Windows 7?

我這樣做,因爲沒有辦法, VS 2010的in-bulit webdeploy功能正在運行。該批處理腳本使之成爲可能,您可以在IIS上運行和調試

我知道,這不是這個問題的明確答案,但它是一個非常類似的問題。