2011-02-16 92 views
0

我的团队和我有一个asp.net网页表单应用程序,并使用几个类库。在其中一个库中,我们试图使用Web服务。 Web引用添加到Web应用程序项目中,并添加了相应的引用。该应用程序编译。当尝试使用类库中的所述Web服务时,凭据似乎不起作用,并且调用失败。但是,如果我们将Web服务调用从类库中取出,并在Web应用程序中使用它,它就会起作用。从类库中的asp.net应用程序中消费Web服务

任何想法,为什么这不是在类库中工作。

+0

如果您从类库中使用它,则应该将该服务引用添加到类库中。 – 2011-02-16 15:21:19

+0

你指的是添加实际的Web引用或System.Web.Services引用。 – developerdoug 2011-02-16 15:27:33

+1

我建议您使用“添加服务引用”而不是“添加Web引用”,并将其添加到类库中。 – 2011-02-16 20:20:11

回答

0

可能是你说错了! 下面是一个例子:

var serviceName = new ServiceName 
    { 
     Credentials = new NetworkCredential("Username", "Password", "Domain"), 
     Url = "Here you put the correct url of the web service if you published somewhere else" 
    }; 
serviceName.CallWebMethod(); 

确保你输入了正确的凭据的用户名和密码,并确认您发布的网络服务来访问它的地方。

2

仔细检查您的配置文件是否包含Web服务的正确信息。

尝试将URL行为更改为动态。

另外,正如约翰所说,我假设您将服务添加到类库,因为您打算从库中使用它,而不是Web应用程序的其他区域。

“证书似乎不起作用,并且调用失败”......您能否给出一个小堆栈错误跟踪?

只是为了澄清,在我当前的项目中,我们使用绑定和凭证在类库中使用WCF端点。当您尝试时,可以为SOAP ASMX Web引用完成相同的操作。

1

您可以通过执行以下步骤添加Web服务引用:

  1. 右键单击在解决方案资源管理器
  2. 点击项目添加服务引用
  3. 点击高级
  4. ,你会发现“添加Web引用”在表格末尾
1

如果您在应用程序中添加引用,然后利用从类库中获取它...如何调用类库...通过添加引用并调用类库的方法,然后如何从类库中访问代理需要引用它...在我看来,循环参考。这不应该在第一时间编译...你是否正确描述你的结构?

最好只用Web引用添加一个简单的项目,然后在需要它的所有项目中添加此项目的引用。

1

您是否在Web应用程序的配置文件中定义了任何凭据信息?如果是这样,类库可能无法正确获取它们。只是一个猜测。约翰桑德斯是对的。看起来有点落后,阅读你的应用程序结构的描述。

1

您可以通过执行以下步骤添加Web服务引用:

右键单击在解决方案资源管理器 点击项目添加服务引用 单击高级 你会发现“添加Web引用”末的形式

通过@ AMGdy的解决方案,它会自动生成一个Reference.cs类。它定义了所有的webservices方法。