2013-01-16 157 views
2

我是mono/linux的新手,我嘗試使用mod_mono在ubuntu/apache2上託管我現有的asp.net mvc3網站。一切正常,除了調用ServiceStack服務時,如果反序列化服務的響應(該服務位於不同proc中託管的同一臺機器上),似乎會失敗。我已經看過單聲道gac和組件在那裏(正確的版本/關鍵)。此外,如果我從monodevelop/xsp運行網站,一切正常。任何想法,爲什麼類型加載失敗讚賞。無法加載類型'System.Runtime.Serialization.Json.DataContractJsonSerializer'


    Could not load type 'System.Runtime.Serialization.Json.DataContractJsonSerializer' from assembly 'System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 

    Stack Trace: 

    System.TypeLoadException: Could not load type 'System.Runtime.Serialization.Json.DataContractJsonSerializer' from assembly 'System.ServiceModel.Web, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. 
     at ServiceStack.ServiceClient.Web.JsonServiceClient.DeserializeFromStream[List`1] (System.IO.Stream stream) [0x00000] in :0 
     at ServiceStack.ServiceClient.Web.ServiceClientBase.HandleResponse[List`1] (System.Net.WebResponse webResponse) [0x00000] in :0 
     at ServiceStack.ServiceClient.Web.ServiceClientBase.Send[List`1] (System.String httpMethod, System.String relativeOrAbsoluteUrl, System.Object request) [0x00000] in :0 

我使用:

 

    Mono Runtime Version: 2.10.8.1 (Debian 2.10.8.1-5ubuntu1); 
    ASP.NET Version: 4.0.30319.1 
    ServiceStack 3.9.32 

回答

4

我有同樣的問題。發生這種情況的原因是ServiceStack庫在運行時無法找到3.5版本的System.ServiceModel.Web。我將3.5版本的單聲道「gac」複製到我的應用程序bin目錄中,並且所有內容都開始正常工作。路徑可能會在您的系統/部署上有所不同,但以下是我所使用的:

cp /usr/lib/mono/gac/System.ServiceModel.Web/3.5.0.0__31bf3856ad364e35/System.ServiceModel.Web.dll /var/www/path/to/web/app/bin/ 
相關問題