我有一個使用Apache 2.2.15中託管的basicHttpBinding的WCF服務,在CentOS中使用mod_mono。我增加了以下指令來/etc/httpd/conf/httpd.conf中結束,以使WCF服務:無法使用mod-mono訪問Apache中託管的WCF服務
MonoServerPath default /usr/bin/mod-mono-server4
AddType application/x-asp-net .svc
當我嘗試在Windows調用來自客戶端的服務的操作:
BasicHttpBinding binding = new BasicHttpBinding();
IService1 service1 = ChannelFactory<IService1>.CreateChannel(binding, new EndpointAddress(new Uri(`"http://ipaddress/svctest/Service1.svc"`)));
string test= service1.GetData(1);
下拋出異常:
的ProtocolException了未處理: 內容類型application /響應消息的X-ASP-淨不匹配的結合(文本/ XML的內容類型;字符集= UTF-8)。如果使用自定義編碼器,請確保IsContentTypeSupported方法正確實施。第一109個字節的響應爲:'<%@ ServiceHost的語言= 「C#」 調試= 「真」 服務= 「svcfiletest.Service1」 代碼隱藏= 「Service1.svc.cs」 %>
當我通過瀏覽器訪問服務,它下載文件而不是顯示服務描述。
當我使用
svcutil
HTTP://ipaddress/svcutil/Service1.svc WSDL我得到 以下消息:在URL
http://ipaddress/svctest/Service1.svc
該文件 未被識別爲已知的文檔類型。來自每個 已知類型的錯誤消息可能會幫助您解決問題: - 從'XML Schema'報告是'名稱不能以'%'字符開頭,hecadecimal值爲0x25。 1號線,位置2'。 - 「WSDL文檔」的報告是「XML文檔(1,2)中存在錯誤」。 - 名稱不能以'%'字符開頭,十六進制值爲0x25。 1號線,2位
似乎它正從Service1.svc文本:
<%@ ServiceHost Language="C#" Debug="true" Service="svcfiletest.Service1" CodeBehind="Service1.svc.cs" %>
任何幫助嗎?
感謝
我有「包括conf.d/*。conf」和內部/etc/httpd/conf.d我有mod-mono.conf。 在mono.conf中我有「 LoadModule mono_module /usr/lib64/httpd/modules/mod_mono.so 」。 我能夠在mod-mono-server2的windows瀏覽器中打開mod_mono附帶的測試項目。但對於mod-mono-server4的WCF服務無法正常工作。 –
嗯,我剛剛嘗試過,我不得不將'AddType application/x-asp-net .svc'添加到'mod-mono.conf'中。 –