0
我的問題與此密切相關:How can I use .NET web services from non-standard ports?。我的Web服務運行在端口轉發防火牆之後,因此WSDL文檔中報告的端口號包含內部高編號端口。我編寫了一個能夠重寫WSDL文檔的SoapExtensionReflector類。因此像example.com/path/loginservice?wsdl這樣的請求被正確處理。修復contractRef和docRef上的非標準web serverice端口
但是,這並不處理「迪斯科」請求:example.com/path/loginservice?disco。這將返回一個XML文檔是這樣的:
<discovery>
<contractRef ref="http://example.com:10092/loginservice.asmx?wsdl" docRef="http://example.com:10092/loginservice.asmx"/>
<soap address="http://example.com/path/loginservice.asmx" binding="q1:LoginServiceSoap"/>
<soap address="http://example.com/path/loginservice.asmx" binding="q2:LoginServiceSoap12"/>
</discovery>
雖然SOAP綁定已妥善由SoapExtensionReflector重新寫的,contractRef和docRef網址的高編號端口。我怎樣才能重寫它們呢?
我沒有找到修復程序。我切換到WCF。我仍然需要使用WCFExtras編寫擴展來修復端口問題。這清理了WSDL,但我仍然在.svc網頁上顯示端口號,儘管它在那裏相當無害。 –