2013-04-24 30 views
0

我在ASP.net MVC調用Web服務時,有一個問題引用合同「服務」的錯誤默認終結點元素,我這樣做找不到,在使用Web服務在asp.net mvc的

添加Web通過添加服務引用到解決方案,我也包括service.cs文件的解決方案也,但是當我嘗試創建對象在家庭控制器中時,我有以下錯誤

找不到默認的端點元素引用合同ServiceModel客戶端配置部分中的'服務'。這可能是因爲沒有找到適用於您的應用程序的配置文件,或者因爲在客戶端元素中找不到匹配此合同的端點元素。

任何一個可以幫助我,請

感謝

+0

請發佈您的配置文件。 – Tim 2013-04-24 01:38:11

+0

我運行svcutil.exe實用程序來生成代碼文件,將在客戶端使用者應用程序中稍後使用,所以我有output.config文件我將此文件中的代碼複製到web.config文件下面是配置文件 – RProgrammer 2013-04-24 01:47:32

+0

感謝Mate,但是如何檢查名稱空間,我將Web服務添加到名爲Service1的解決方案,並將配置添加到web.config文件,以便問題在哪裏請 – RProgrammer 2013-04-24 01:54:03

回答

1

有幾件事情怎麼回事。首先,您正在使用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問題。我希望這可以幫助你。

+0

非常歡迎 - 我很樂意提供幫助。 – Tim 2013-04-25 01:55:53