在 ASP.net MVC 中调用 Web 服务时出现问题,我执行以下操作
通过将服务引用添加到解决方案来添加 Web 服务,并且我也将 service.cs 文件包含到解决方案中,但是当我尝试在主控制器中创建对象时,出现以下错误
在 ServiceModel 客户端配置部分中找不到引用合同“服务”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此协定匹配的端点元素。
谁能帮帮我
谢谢
在 ASP.net MVC 中调用 Web 服务时出现问题,我执行以下操作
通过将服务引用添加到解决方案来添加 Web 服务,并且我也将 service.cs 文件包含到解决方案中,但是当我尝试在主控制器中创建对象时,出现以下错误
在 ServiceModel 客户端配置部分中找不到引用合同“服务”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此协定匹配的端点元素。
谁能帮帮我
谢谢
这里发生了几件事。首先,您使用 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 问题。我希望这可以帮助你。