从类库中使用asp.net应用程序中的Web服务

时间:2011-02-16 15:19:40

标签: c# asp.net web-services asmx

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

任何想法为什么这不适用于类库。

6 个答案:

答案 0 :(得分:2)

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

尝试将网址行为更改为动态。

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

“凭据似乎不起作用,并且调用失败”......你能给出错误的小堆栈跟踪吗?

为了澄清,在我当前的项目中,我们在类库中使用带有绑定和凭据的WCF端点。在您尝试时,可以对SOAP ASMX Web引用执行相同的操作。

答案 1 :(得分:1)

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

  1. 右键单击解决方案资源管理器上的项目
  2. 点击添加服务参考
  3. 点击高级
  4. 您会在表单末尾找到“添加网页参考”

答案 2 :(得分:1)

如果要在应用程序中添加引用然后从类库中使用它...如何调用类库...通过添加引用并调用类库的方法,然后如何从类库中访问代理你需要引用它......在我看来是一个循环引用。哪个不应该在第一个地方编译......你是否正确描述了你的结构???

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

答案 3 :(得分:1)

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

答案 4 :(得分:1)

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

右键单击Solution Explorer上的项目 单击添加服务引用 单击高级 你会在表格末尾找到“添加网页参考”

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

答案 5 :(得分: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();

确保您输入了正确的凭据用户名和密码,并确保您已将网络服务发布到您访问它的位置。