2010-07-18 3 views
3

У меня есть WCF, работающий в Windows. Я хотел бы развернуть его - или, по крайней мере, проверить его - на сервере разработки, на котором запущены SUSE и Mono.Как создать службу WCF с помощью Mono?

После запроса о примерах WCF в Mono на IRC-канале #monodev в GimpNet Я загружаю примеры из модуля оливкового в подрывную деятельность.

Ни один пример фактически не использует файл Web.config для создания служебной шины вместо наследования с ServiceHost и создания привязки и так далее вручную. Теперь я хочу знать, делает Mono использует файлы 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 

Любые советы о том, что я должен делать?

ответ

2

Была проведена некоторая работа над поддержкой web.config для WCF в Mono в феврале/марте этого года, судя по mono-dev mailing list traffic, но это еще не отправлено. Вы можете поэкспериментировать с building a development version of mono yourself (устаревшее руководство, Mono переключилось на git несколько дней назад) или просто создайте ставку вручную. Позднее, безусловно, легче сделать.

1

Основываясь на отчете об исключении, похоже, что структура Mono выбирает отрицательное число (-1?) Как значение по умолчанию для значений, которые должны использоваться по умолчанию для различных положительных чисел. Я бы посмотрел полную конфигурацию конечной точки в MSDN, выяснил правильные значения по умолчанию для таких вещей, как «Квоты чтения», и установил их вручную. Если это решит проблему, я бы подал отчет об ошибке в команде Mono, так как казалось бы, у них есть ошибка в этой трассе стека где-то вдоль линии.

Смежные вопросы