2012-11-21 74 views
0

我有一個使用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" %> 

任何幫助嗎?

感謝

回答

0

你還居然某處加載模塊在/etc/httpd/conf/httpd.conf

同時需要Include /etc/apache2/mod_mono.conf(或放入多數民衆贊成由您http.conf包括一個config目錄)和LoadModule mono_module /usr/lib/httpd/modules/mod_mono.so

http://www.mono-project.com/Mod_mono

我的設置 - 手動啓動MOD-單

我手動編譯MOD-單,這是我mod_mono.conf:http://pastebin.com/qp8vxHQ7。您需要使用此設置手動啓動mod-mono-server。

我在~/Sites/檢出了this module,apache選擇了http://localhost/~Martin/

然後,我在~/Sites目錄這樣開始MOD-單服務器4:

mod-mono-server4 --port 9000 --applications /~martin/Service:Service --verbose 

這是工作的罰款。

我的設置 - 自動啓動模 - 單

還測試的替代設置:http://pastebin.com/tYWk3tC9。這可以讓apache啓動mod-mono。

+0

我有「包括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服務無法正常工作。 –

+1

嗯,我剛剛嘗試過,我不得不將'AddType application/x-asp-net .svc'添加到'mod-mono.conf'中。 –

相關問題