2011-02-16 58 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方法。