有幾件事情怎麼回事。首先,您正在使用SVCUTIL爲非WCF服務生成代理和配置設置 - .asmx是遺留的。我能夠生成代理和配置設置,但爲了克服錯誤,您需要調用WeatherHttpClient
的重載版本之一。
我不是100%確定,但這是我認爲基於我觀察到的。
原因是因爲在配置文件中定義了兩個端點(一個用於SOAP 1.1,另一個用於SOAP 1.2),並且由於兩個端點都被命名,所以沒有默認端點可供選擇。
當我使用var x = new WeatherHttpClient(new BasicHttpBinding("WeatherSoap"), new EndpointAddress("http://wsf.cdyne.com/WeatherWS/Weather.asmx"));
我能夠創建代理就好了。
然而,當我打電話GetCityForecastByZip
我得到了以下錯誤:
Server did not recognize the value of HTTP Header SOAPAction: http://ws.cdyne.com/WeatherWS/WeatherHttpGet/GetCityForecastByZIPRequest.
於是我用WSDL.EXE生成代理一拉.ASMX風格。我包括在我的項目,下面的代碼返回的結果(包括System.Web.Services
參考後 - 我使用的是控制檯應用程序):
var x = new Weather();
ForecastReturn result = x.GetCityForecastByZip("91504");`
我會用WSDL.EXE生成代理建議爲簡單起見爲您的服務,因爲它似乎更簡單。
我還會補充一點,我做了很少的MVC,但我不認爲這是一個MVC問題。我希望這可以幫助你。
來源
2013-04-24 19:16:22
Tim
請發佈您的配置文件。 – Tim 2013-04-24 01:38:11
我運行svcutil.exe實用程序來生成代碼文件,將在客戶端使用者應用程序中稍後使用,所以我有output.config文件我將此文件中的代碼複製到web.config文件下面是配置文件 – RProgrammer 2013-04-24 01:47:32
感謝Mate,但是如何檢查名稱空間,我將Web服務添加到名爲Service1的解決方案,並將配置添加到web.config文件,以便問題在哪裏請 – RProgrammer 2013-04-24 01:54:03