我正在尝试使用一个 .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" />
你能告诉我我做错了什么吗?
注意:我使用 MS VS 2010 创建了这个项目,然后发布了它。将发布的目录复制到 Apache/Linux 环境。WCF 不使用任何复杂类型。我正在使用单声道版本 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.