我正在尝试使用一个.aspx,.asmx和.svc文件来托管一个简单的应用程序.我按照下面的指南来实现托管(因为我是linux世界的新手,需要一段时间来理解它!):
http://www.mono-project.com/Mod_mono#Manual_Mod_Mono_Configuration
完成所有托管后,我可以访问aspx和asmx文件.但是当我尝试访问svc文件时,我收到以下错误:
ServiceHost必须至少有一个由配置,行为或对AddServiceEndpoint方法的调用定义的应用程序端点(不包括元数据交换端点).
要么
HttpListenerContext与任何已注册的频道都不匹配
我在web.config中定义了一个非常简单的服务端点,如下所示:
<system.serviceModel>
<services>
<service name="TestWCFService">
<endpoint address="http://localhost/MonoTest/TestWCFService.svc" binding="basicHttpBinding"
contract="MonoTest.ITestWCFService"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
Run Code Online (Sandbox Code Playgroud)
你能告诉我我做错了什么吗?
注意:我使用MS VS 2010创建此项目,然后发布它.已发布的目录将复制到Apache/Linux环境中.WCF不使用任何复杂类型.我使用的是Mono版本2.8.2
更新 更新:我尝试使用2.10.2 Mono.这个错误消失了,我现在面临一个新错误:
XmlSchema error: Named item http://tempuri.org/:DoWork was already contained in the schema object table. Consider setting MONO_STRICT_MS_COMPLIANT to 'yes' to mimic MS implementation. Related schema item SourceUri: , Line 0, Position 0.
Run Code Online (Sandbox Code Playgroud)
经过数周的研发,我已经弄明白了.出于某种原因,我无法使服务WSDL工作(意味着我无法从浏览器访问.svc).但是,当我尝试使用Channel Factory访问它时,该服务工作正常.
所以我已经在Channel Factory中实现了所有功能(对于我的Silverlight应用程序),现在一切正常.我仍然不确定如何使WSDL工作,但对我来说这对我来说并不重要.
归档时间: |
|
查看次数: |
2283 次 |
最近记录: |