【问题标题】:Can't add service reference无法添加服务参考
【发布时间】:2010-10-12 15:48:06
【问题描述】:

我已经开始学习 WCF。我编写了一个简单的服务来通过 LINQ 查询 SQL 关系。

[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = aspNetCompatibilityRequirementsMode.Allowed)]
public class Order_WCFService 
   {

    [OperationContract]    
    public List<Order> getOrders()
    {
        List<Order> orderList= null;

        try
        {
            orderList= DAL.GetList<Order>();
            return orderList;
        }
        catch (Exception)
        {
            throw;
        }
    }     
}

这位于 ASP.NET-MVC 项目中。

我有一个简单的 Silverlight 应用程序。它在同一个解决方案中,但在不同的项目中。

我想通过 silverlight 应用程序使用我的服务。

我尝试“添加服务引用...”,在左侧列中,我列出了所有可用的 ASMX 和 WCF 服务。当我点击任何服务时,它会尝试下载服务信息,但在 10-20 秒后失败:“尝试在...查找服务时发生错误(详细信息)”

我在这里做错了什么?

谢谢

我 100% 确定服务正常运行,因为我可以通过 AJAX 调用它们。

【问题讨论】:

  • 检查添加服务引用发现的 URL 是否正常工作 - 将其直接粘贴到您的 Web 浏览器中。
  • 了解单击(详细信息)时显示的错误消息会很有帮助。如果它说“端口 #### 很忙”,就像我的情况一样,解决方法是将 GO URL 中的“localhost”替换为明确的 IP 地址,例如127.0.0.1

标签: c# silverlight web-services wcf


【解决方案1】:

也许是一个愚蠢的问题,但是当您尝试添加服务引用时服务是否正在运行(如果您使用的是 Visual Studio 的内置 Web 服务器,它是否已启动并且包含该服务的 ASP.NET MVC 项目是否正在运行)?您也可以尝试在“添加服务引用”对话框中提供 WSDL 的完整地址,而不是在验证您的浏览器中可以访问此 WSDL 后从列表中选择它。

【讨论】:

  • 感谢您的回复。当我单击“添加服务引用...”时,VS IDE 就会启动一个 Web 服务器,我可以在屏幕的右下角看到它。当我导航到 localhost:3697/Order_WCFService.svc 时,我收到一条消息说我已经创建了一个服务。
  • 完整地址是指:localhost:3697/Order_WCFService.svc ?
  • 对了,看来web服务已经启动了。现在尝试导航到 WSDL:http://localhost:3697/Order_WCFService.svc?WSDL 并确保它以正确的 XML 响应,如果可以,请尝试在“添加服务引用”对话框中使用相同的地址。
  • 使用该地址会导致以下错误:“从该地址下载元数据时出错。请验证您输入的地址是否有效。”
  • 您也可以尝试使用命令行工具:c:\Program Files\Microsoft SDKs\Silverlight\v3.0\Tools\SlSvcUtil.exe http://localhost:3697/Order_WCFService.svc?WSDL,它将为您提供有关错误的更多详细信息。还要确保您在服务 web.config 文件中启用了元数据信息:&lt;serviceMetadata httpGetEnabled="true"/&gt;
猜你喜欢
  • 1970-01-01
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-22
  • 1970-01-01
相关资源
最近更新 更多