2010-07-18 140 views
3

我有一個WCF在Windows上運行。我想在運行SUSE和Mono的開發服務器上部署它,或者至少測試它。如何使用Mono創建WCF服務?

在GimpNet的IRC頻道#monodev詢問Mono中的WCF示例後,我從subversion的橄欖球模塊下載了示例。

沒有任何示例實際上使用Web.config文件創建服務總線,而是從ServiceHost繼承並手動創建綁定等等。現在我想知道,單聲道是否使用Web.config文件,或者我應該創建綁定等手

現在,運行我的MonoDevelop的服務,打只是http://localhost:8080/(或http://localhost:8080/ServiceName.svc - 似乎並不重要)給我一個錯誤,我不能確定:上

Server Error in '/' Application 

Value must be positive integer. 

Description: HTTP 500. Error processing request. 

Stack Trace: 

System.ArgumentException: Value must be positive integer. 
    at System.Xml.XmlDictionaryReaderQuotas.Check (Int32 value) [0x0002a] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.Runtime.Serialization/System.Xml/XmlDictionaryReaderQuotas.cs:94 
    at System.Xml.XmlDictionaryReaderQuotas.set_MaxBytesPerRead (Int32 value) [0x00000] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.Runtime.Serialization/System.Xml/XmlDictionaryReaderQuotas.cs:69 
    at System.ServiceModel.Configuration.BasicHttpBindingElement.OnApplyConfiguration (System.ServiceModel.Channels.Binding binding) [0x00043] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel.Configuration/BasicHttpBindingElement.cs:214 
    at System.ServiceModel.Configuration.StandardBindingElement.ApplyConfiguration (System.ServiceModel.Channels.Binding binding) [0x00030] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel.Configuration/StandardBindingElement.cs:139 
    at System.ServiceModel.Configuration.ConfigUtil.CreateBinding (System.String binding, System.String bindingConfiguration) [0x00063] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel.Configuration/ConfigUtil.cs:81 
    at System.ServiceModel.ServiceHostBase.ApplyConfiguration() [0x00110] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel/ServiceHostBase.cs:320 
    at System.ServiceModel.ServiceHostBase.InitializeDescription (System.ServiceModel.UriSchemeKeyedCollection baseAddresses) [0x0001c] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel/ServiceHostBase.cs:368 
    at System.ServiceModel.ServiceHost.InitializeDescription (System.Type serviceType, System.ServiceModel.UriSchemeKeyedCollection baseAddresses) [0x0001d] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel/ServiceHost.cs:160 
    at System.ServiceModel.ServiceHost..ctor (System.Type serviceType, System.Uri[] baseAddresses) [0x00006] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel/ServiceHost.cs:60 
    at System.ServiceModel.Channels.SvcHttpHandler.EnsureServiceHost() [0x0007d] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel.Channels/SvcHttpHandler.cs:207 
    at System.ServiceModel.Channels.SvcHttpHandler.ProcessRequest (System.Web.HttpContext context) [0x00000] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.ServiceModel/System.ServiceModel.Channels/SvcHttpHandler.cs:150 
    at System.Web.HttpApplication+<Pipeline>c__Iterator2.MoveNext() [0x00cdf] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.Web/System.Web/HttpApplication.cs:1362 
    at System.Web.HttpApplication.Tick() [0x00000] in /usr/src/packages/BUILD/mono-2.6.4/mcs/class/System.Web/System.Web/HttpApplication.cs:928 
Version information: Mono Runtime Version: 2.6.4 (tarball Mon Jul 5 13:53:45 UTC 2010); ASP.NET Version: 2.0.50727.1433 

任何提示,我應該怎麼做?

回答

1

基於異常報告,聽起來Mono框架正在選擇一個負數(-1?)作爲缺省值爲各種正數的值的默認值。我將在MSDN上查找端點的完整配置,找出諸如Reader Quotas之類的正確默認值,並手動設置它們。如果解決了這個問題,我會向Mono團隊提交一個錯誤報告,因爲看起來他們在堆棧跟蹤中的某處存在一個錯誤。